D6936: copies: prepare changelog for more copies storage mode
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Tue Oct 1 13:08:39 EDT 2019
Closed by commit rHG0b87eb2fba67: copies: prepare changelog for more copies storage mode (authored by marmoute).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs Review".
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6936?vs=16733&id=16757
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D6936/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D6936
AFFECTED FILES
mercurial/changelog.py
mercurial/localrepo.py
CHANGE DETAILS
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -751,6 +751,11 @@
else: # explicitly mark repo as using revlogv0
options['revlogv0'] = True
+ writecopiesto = ui.config('experimental', 'copies.write-to')
+ copiesextramode = ('changeset-only', 'compatibility')
+ if (writecopiesto in copiesextramode):
+ options['copies-storage'] = 'extra'
+
return options
def resolverevlogstorevfsoptions(ui, requirements, features):
diff --git a/mercurial/changelog.py b/mercurial/changelog.py
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -391,6 +391,7 @@
self._delaybuf = None
self._divert = False
self.filteredrevs = frozenset()
+ self._copiesstorage = opener.options.get('copies-storage')
def tiprev(self):
for i in pycompat.xrange(len(self) -1, -2, -1):
@@ -633,21 +634,22 @@
elif branch in (".", "null", "tip"):
raise error.StorageError(_('the name \'%s\' is reserved')
% branch)
- extrasentries = p1copies, p2copies, filesadded, filesremoved
- if extra is None and any(x is not None for x in extrasentries):
- extra = {}
sortedfiles = sorted(files)
if extra is not None:
for name in ('p1copies', 'p2copies', 'filesadded', 'filesremoved'):
extra.pop(name, None)
- if p1copies is not None:
- extra['p1copies'] = encodecopies(sortedfiles, p1copies)
- if p2copies is not None:
- extra['p2copies'] = encodecopies(sortedfiles, p2copies)
- if filesadded is not None:
- extra['filesadded'] = encodefileindices(sortedfiles, filesadded)
- if filesremoved is not None:
- extra['filesremoved'] = encodefileindices(sortedfiles, filesremoved)
+ if self._copiesstorage == 'extra':
+ extrasentries = p1copies, p2copies, filesadded, filesremoved
+ if extra is None and any(x is not None for x in extrasentries):
+ extra = {}
+ if p1copies is not None:
+ extra['p1copies'] = encodecopies(sortedfiles, p1copies)
+ if p2copies is not None:
+ extra['p2copies'] = encodecopies(sortedfiles, p2copies)
+ if filesadded is not None:
+ extra['filesadded'] = encodefileindices(sortedfiles, filesadded)
+ if filesremoved is not None:
+ extra['filesremoved'] = encodefileindices(sortedfiles, filesremoved)
if extra:
extra = encodeextra(extra)
To: marmoute, martinvonz, durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list