Mercurial > hg > evolve
changeset 196:dea67dae27a4
amend: add a warning after amend added unstablility
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Wed, 28 Mar 2012 21:13:46 +0200 |
parents | ccbadfae1d06 |
children | c2d692c8f599 |
files | hgext/evolve.py tests/test-evolve.t |
diffstat | 2 files changed, 80 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/evolve.py +++ b/hgext/evolve.py @@ -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 +++ b/tests/test-evolve.t @@ -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