--- a/hgext/evolve.py Thu Mar 29 17:18:43 2012 +0200
+++ b/hgext/evolve.py Wed Mar 28 21:13:46 2012 +0200
@@ -374,6 +374,13 @@
if not old.phase():
raise util.Abort(_("can not rewrite immutable changeset %s") % old)
+ # store the amount of unstable prior update
+ if old.children():
+ priorunstables = len(repo.revs('unstable()'))
+ else:
+ #no children mean no change for unstable changeset
+ priorunstables = None
+
# commit current changes as update
# code copied from commands.commit to avoid noisy messages
ciopts = dict(opts)
@@ -401,6 +408,8 @@
raise error.Abort(_('no updates found'))
updates = [repo[n] for n in updatenodes]
+
+
# perform amend
if opts.get('edit'):
opts['force_editor'] = True
@@ -410,6 +419,11 @@
# reroute the working copy parent to the new changeset
phases.retractboundary(repo, old.phase(), [newid])
repo.dirstate.setparents(newid, node.nullid)
+
+ if priorunstables is not None:
+ newunstables = len(repo.revs('unstable()')) - priorunstables
+ if newunstables > 0:
+ ui.warn(_('%i new unstables changesets\n') % newunstables)
finally:
wlock.release()
finally:
--- a/tests/test-evolve.t Thu Mar 29 17:18:43 2012 +0200
+++ b/tests/test-evolve.t Wed Mar 28 21:13:46 2012 +0200
@@ -203,6 +203,7 @@
$ sed -i'' -e s/Eins/Un/ main-file-1
$ hg amend --note 'french looks better'
+ 1 new unstables changesets
$ hg log
6 feature-A: a nifty feature - test
4 feature-B: another feature - test
@@ -246,3 +247,68 @@
8 feature-B: another feature that rox - test
6 feature-A: a nifty feature - test
0 : base - test
+ $ cd ..
+
+enable general delta
+
+ $ cat << EOF >> $HGRCPATH
+ > [format]
+ > generaldelta=1
+ > EOF
+
+
+
+ $ hg init alpha
+ $ cd alpha
+ $ echo 'base' > firstfile
+ $ hg add firstfile
+ $ hg ci -m 'base'
+
+ $ cd ..
+ $ hg clone -Ur 0 alpha beta
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ $ cd alpha
+
+ $ cat << EOF > A
+ > We
+ > need
+ > some
+ > kind
+ > of
+ > file
+ > big
+ > enough
+ > to
+ > prevent
+ > snapshot
+ > .
+ > yes
+ > new
+ > lines
+ > are
+ > useless
+ > .
+ > EOF
+ $ hg add A
+ $ hg commit -m 'adding A'
+ $ hg mv A B
+ $ echo '.' >> B
+ $ hg amend -m 'add B'
+ $ cd ..
+
+Clone just this branch
+
+ $ cd beta
+ $ hg pull -r tip ../alpha
+ pulling from ../alpha
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ (run 'hg update' to get a working copy)
+ $ hg up
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved