Comments
Patch
@@ -1997,7 +1997,14 @@
hg.update(repo, divergent.rev())
repo.ui.note(_('merging divergent changeset\n'))
if progresscb: progresscb()
- if 'partial' in merge.update.__doc__:
+ try:
+ stats = merge.update(repo,
+ other.node(),
+ branchmerge=True,
+ force=False,
+ ancestor=base.node(),
+ mergeancestor=True)
+ except TypeError:
# Mercurial < 43c00ca887d1 (3.7)
stats = merge.update(repo,
other.node(),
@@ -2006,13 +2013,6 @@
partial=None,
ancestor=base.node(),
mergeancestor=True)
- else:
- stats = merge.update(repo,
- other.node(),
- branchmerge=True,
- force=False,
- ancestor=base.node(),
- mergeancestor=True)
hg._showstats(repo, stats)
if stats[3]:
@@ -107,5 +107,53 @@
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
working directory is now at 6602ff5a79dc
-
- $ cd ..
+
+Test None docstring issue of evolve divergent, which caused hg crush
+
+ $ hg init test2
+ $ cd test2
+ $ mkcommits _a _b
+ $ hg up "desc(_a)"
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ mkcommit bdivergent1
+ created new head
+ $ hg up "desc(_a)"
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ mkcommit bdivergent2
+ created new head
+ $ hg prune -s "desc(bdivergent1)" "desc(_b)"
+ 1 changesets pruned
+ $ hg prune -s "desc(bdivergent2)" "desc(_b)" --hidden
+ 1 changesets pruned
+ 2 new divergent changesets
+ $ hg log -G
+ @ 3:e708fd28d5cf@default(draft) add bdivergent2 [divergent]
+ |
+ | o 2:c2f698071cba@default(draft) add bdivergent1 [divergent]
+ |/
+ o 0:135f39f4bd78@default(draft) add _a []
+
+ $ cat >$TESTTMP/test_extension.py << EOF
+ > from mercurial import merge
+ > origupdate = merge.update
+ > def newupdate(*args, **kwargs):
+ > return origupdate(*args, **kwargs)
+ > merge.update = newupdate
+ > EOF
+ $ cat >> $HGRCPATH << EOF
+ > [extensions]
+ > testextension=$TESTTMP/test_extension.py
+ > EOF
+ $ hg evolve --all
+ nothing to evolve on current working copy parent
+ (do you want to use --divergent)
+ [2]
+ $ hg evolve --divergent
+ merge:[3] add bdivergent2
+ with: [2] add bdivergent1
+ base: [1] add _b
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ working directory is now at aa26817f6fbe
+
+
+ $ cd ..