D715: repair: preserve phase also when not using generaldelta (issue5678)

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Fri Sep 15 11:35:23 EDT 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rHG91f0677dc920: repair: preserve phase also when not using generaldelta (issue5678) (authored by martinvonz, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D715?vs=1833&id=1847

REVISION DETAIL
  https://phab.mercurial-scm.org/D715

AFFECTED FILES
  mercurial/changegroup.py
  mercurial/repair.py
  tests/test-rebase-scenario-global.t
  tests/test-strip.t

CHANGE DETAILS

diff --git a/tests/test-strip.t b/tests/test-strip.t
--- a/tests/test-strip.t
+++ b/tests/test-strip.t
@@ -1116,6 +1116,6 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg (glob)
   $ hg unbundle -q .hg/strip-backup/*
-BROKEN: obsmarker got lost
   $ hg debugobsolete
+  cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
   $ cd ..
diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t
--- a/tests/test-rebase-scenario-global.t
+++ b/tests/test-rebase-scenario-global.t
@@ -399,11 +399,10 @@
   $ hg rebase -s 1 -d 2
   rebasing 1:d2ae7f538514 "b"
   saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/d2ae7f538514-2953539b-rebase.hg (glob)
-BROKEN: d36c should remain public
   $ hg log -G -T '{rev}:{node|shortest} {phase} {desc}\n'
   o  2:c882 draft b
   |
-  @  1:d36c draft c
+  @  1:d36c public c
   |
   o  0:cb9a public a
   
diff --git a/mercurial/repair.py b/mercurial/repair.py
--- a/mercurial/repair.py
+++ b/mercurial/repair.py
@@ -38,7 +38,7 @@
     totalhash = hashlib.sha1(''.join(allhashes)).hexdigest()
     name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix)
 
-    cgversion = changegroup.safeversion(repo)
+    cgversion = changegroup.localversion(repo)
     comp = None
     if cgversion != '01':
         bundletype = "HG20"
diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -872,6 +872,11 @@
         versions.discard('02')
     return versions
 
+def localversion(repo):
+    # Finds the best version to use for bundles that are meant to be used
+    # locally, such as those from strip and shelve, and temporary bundles.
+    return max(supportedoutgoingversions(repo))
+
 def safeversion(repo):
     # Finds the smallest version that it's safe to assume clients of the repo
     # will support. For example, all hg versions that support generaldelta also



To: martinvonz, #hg-reviewers, indygreg, quark, durham, durin42
Cc: quark, indygreg, mercurial-devel


More information about the Mercurial-devel mailing list