[PATCH 2 of 7 evolve-ext] _finalizerelocate
Shusen LIU
liushusen at fb.com
Sun Dec 6 19:46:47 CST 2015
# HG changeset patch
# User Shusen LIU <liushusen at fb.com>
# Date 1449450646 28800
# Sun Dec 06 17:10:46 2015 -0800
# Node ID 4b328ecda544c3b06587ea6825031fcd8c960932
# Parent 3021c118e9b77a0332cbda182fa27277b9011c04
_finalizerelocate
diff --git a/hgext/evolve.py b/hgext/evolve.py
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -965,21 +965,7 @@
pass
exc.__class__ = LocalMergeFailure
raise
- oldbookmarks = repo.nodebookmarks(nodesrc)
- if nodenew is not None:
- phases.retractboundary(repo, tr, destphase, [nodenew])
- obsolete.createmarkers(repo, [(repo[nodesrc], (repo[nodenew],))])
- for book in oldbookmarks:
- repo._bookmarks[book] = nodenew
- else:
- obsolete.createmarkers(repo, [(repo[nodesrc], ())])
- # Behave like rebase, move bookmarks to dest
- for book in oldbookmarks:
- repo._bookmarks[book] = dest.node()
- for book in destbookmarks: # restore bookmark that rebase move
- repo._bookmarks[book] = dest.node()
- if oldbookmarks or destbookmarks:
- repo._bookmarks.recordchange(tr)
+ _finalizerelocate(repo, orig, dest, nodenew, tr)
tr.close()
finally:
tr.release()
@@ -3668,3 +3654,23 @@
finally:
repo.ui.restoreconfig(backup)
return nodenew
+
+def _finalizerelocate(repo, orig, dest, nodenew, tr):
+ destbookmarks = repo.nodebookmarks(dest.node())
+ nodesrc = orig.node()
+ destphase = repo[nodesrc].phase()
+ oldbookmarks = repo.nodebookmarks(nodesrc)
+ if nodenew is not None:
+ phases.retractboundary(repo, tr, destphase, [nodenew])
+ obsolete.createmarkers(repo, [(repo[nodesrc], (repo[nodenew],))])
+ for book in oldbookmarks:
+ repo._bookmarks[book] = nodenew
+ else:
+ obsolete.createmarkers(repo, [(repo[nodesrc], ())])
+ # Behave like rebase, move bookmarks to dest
+ for book in oldbookmarks:
+ repo._bookmarks[book] = dest.node()
+ for book in destbookmarks: # restore bookmark that rebase move
+ repo._bookmarks[book] = dest.node()
+ if oldbookmarks or destbookmarks:
+ repo._bookmarks.recordchange(tr)
More information about the Mercurial-devel
mailing list