# HG changeset patch # User Pierre-Yves David # Date 1384549300 18000 # Node ID fa87604b359c2c16109c5b070aaa17c13e8a1f10 # Parent 99e51aff724bf9a8d7dc2024d69d0b41a439a770# Parent dcda64966616d3ba71e8d437fd482cf01dcff166 merge stable into default diff -r dcda64966616 -r fa87604b359c MANIFEST.in --- a/MANIFEST.in Sat Aug 10 17:30:44 2013 -0400 +++ b/MANIFEST.in Fri Nov 15 16:01:40 2013 -0500 @@ -7,6 +7,7 @@ include docs/static/*.svg include hgext/__init__.py include hgext/evolve.py +include hgext/pushexperiment.py include setup.py include README include COPYING diff -r dcda64966616 -r fa87604b359c README --- a/README Sat Aug 10 17:30:44 2013 -0400 +++ b/README Fri Nov 15 16:01:40 2013 -0500 @@ -42,6 +42,14 @@ Changelog ========= +3.2.0 -- + +- conform to the Mercurial custom of lowercase messages +- added a small extension to experiment with obsolescence marker push +- amend: drop the deprecated note option +- amend: use core mechanism for amend (fix multiple bugs) +- parents command: add "working directory parent is obsolete" message + 3.1.0 -- 2013-02-11 - amend: drop deprecated --change option for amend diff -r dcda64966616 -r fa87604b359c debian/changelog --- a/debian/changelog Sat Aug 10 17:30:44 2013 -0400 +++ b/debian/changelog Fri Nov 15 16:01:40 2013 -0500 @@ -1,3 +1,9 @@ +mercurial-evolve (3.2.0-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Julien Cristau Tue, 04 Jun 2013 17:28:02 +0200 + mercurial-evolve (3.1.0-1) UNRELEASED; urgency=low * New upstream release. diff -r dcda64966616 -r fa87604b359c debian/control --- a/debian/control Sat Aug 10 17:30:44 2013 -0400 +++ b/debian/control Fri Nov 15 16:01:40 2013 -0500 @@ -7,8 +7,7 @@ Pierre-Yves David , Standards-Version: 3.9.3 Build-Depends: - mercurial (>=2.5~), - mercurial-common (>=2.5~), + mercurial (>=2.6~), python, debhelper (>= 8), python-sphinx (>= 1.0.8), @@ -22,7 +21,7 @@ Depends: ${python:Depends}, ${misc:Depends}, - mercurial (>= 2.5), + mercurial (>= 2.6), Description: evolve extension for Mercurial This package provides the experimental "evolve" extension for the Mercurial DVCS. diff -r dcda64966616 -r fa87604b359c debian/rules --- a/debian/rules Sat Aug 10 17:30:44 2013 -0400 +++ b/debian/rules Fri Nov 15 16:01:40 2013 -0500 @@ -1,14 +1,12 @@ #!/usr/bin/make -f -%: +clean %: dh $@ --with python2 --buildsystem=python_distutils build: dh build --with python2 --buildsystem=python_distutils $(MAKE) -C docs -.PHONY: build - ifeq (,$(filter nocheck, $(DEB_BUILD_OPTIONS))) override_dh_auto_test: cd tests && python run-tests.py --with-hg=`which hg` @@ -18,3 +16,12 @@ # avoid conflict with mercurial's own hgext/__init__.py find debian -name __init__.py -delete dh_python2 + +clean: clean-docs + +clean-docs: + rm -rf html + rm -f docs/static/logo-evolve.ico + rm -f docs/tutorials/tutorial.rst + +.PHONY: build clean clean-docs diff -r dcda64966616 -r fa87604b359c hgext/evolve.py --- a/hgext/evolve.py Sat Aug 10 17:30:44 2013 -0400 +++ b/hgext/evolve.py Fri Nov 15 16:01:40 2013 -0500 @@ -557,12 +557,13 @@ # This section take care of issue warning to the user when troubles appear @eh.wrapcommand("update") +@eh.wrapcommand("parents") @eh.wrapcommand("pull") def wrapmayobsoletewc(origfn, ui, repo, *args, **opts): """Warn that the working directory parent is an obsolete changeset""" res = origfn(ui, repo, *args, **opts) if repo['.'].obsolete(): - ui.warn(_('Working directory parent is obsolete\n')) + ui.warn(_('working directory parent is obsolete!\n')) return res # XXX this could wrap transaction code @@ -1166,7 +1167,7 @@ try: repo.dirstate.setparents(divergent.node(), node.nullid) oldlen = len(repo) - amend(ui, repo) + amend(ui, repo, message='', logfile='') if oldlen == len(repo): new = divergent # no changes @@ -1236,7 +1237,7 @@ children = [ctx for ctx in wparents[0].children() if not ctx.obsolete()] displayer = cmdutil.show_changeset(ui, repo, {'template': shorttemplate}) if not children: - ui.warn(_('No non-obsolete children\n')) + ui.warn(_('no non-obsolete children\n')) return 1 if len(children) == 1: c = children[0] @@ -1246,7 +1247,7 @@ else: for c in children: displayer.show(c) - ui.warn(_('Multiple non-obsolete children, explicitly update to one\n')) + ui.warn(_('multiple non-obsolete children, explicitly update to one\n')) return 1 def _reachablefrombookmark(repo, revs, mark): @@ -1378,8 +1379,10 @@ @command('amend|refresh', [('A', 'addremove', None, _('mark new/missing files as added/removed before committing')), - ('n', 'note', '', _('use text as commit message for this update (DEPRECATED)')), ('e', 'edit', False, _('invoke editor on commit messages')), + ('', 'close-branch', None, + _('mark a branch as closed, hiding it from the branch list')), + ('s', 'secret', None, _('use the secret phase for committing')), ] + walkopts + commitopts + commitopts2, _('[OPTION]... [FILE]...')) def amend(ui, repo, *pats, **opts): @@ -1400,79 +1403,13 @@ Returns 0 on success, 1 if nothing changed. """ - - # determine updates to subsume - old = scmutil.revsingle(repo, '.') - metadata = _getmetadata(**opts) - - lock = repo.lock() - try: - wlock = repo.wlock() - try: - if old.phase() == phases.public: - raise util.Abort(_("can not rewrite immutable changeset %s") - % old) - tr = repo.transaction('amend') - try: - oldphase = old.phase() - # commit current changes as update - # code copied from commands.commit to avoid noisy messages - ciopts = dict(opts) - ciopts.pop('message', None) - ciopts.pop('logfile', None) - ciopts['message'] = opts.get('note') or ('amends %s' % old.hex()) - e = cmdutil.commiteditor - def commitfunc(ui, repo, message, match, opts): - return repo.commit(message, opts.get('user'), opts.get('date'), - match, editor=e) - revcount = len(repo) - tempid = cmdutil.commit(ui, repo, commitfunc, pats, ciopts) - if len(repo) == revcount: - # No revision created - tempid = None - - # find all changesets to be considered updates - head = repo['.'] - updatenodes = set(repo.changelog.nodesbetween( - roots=[old.node()], heads=[head.node()])[0]) - updatenodes.remove(old.node()) - okoptions = ['message', 'logfile', 'edit', 'user'] - if not updatenodes: - for o in okoptions: - if opts.get(o): - break - else: - raise error.Abort(_('no updates found')) - updates = [repo[n] for n in updatenodes] - - # perform amend - if opts.get('edit'): - opts['force_editor'] = True - newid, created = rewrite(repo, old, updates, head, - [old.p1().node(), old.p2().node()], opts) - - if newid != old.node(): - createmarkers(repo, [(old, (repo[newid],))]) - if tempid is not None: - createmarkers(repo, [(repo[tempid], ())]) - if created: - # reroute the working copy parent to the new changeset - phases.retractboundary(repo, oldphase, [newid]) - repo.dirstate.setparents(newid, node.nullid) - else: - # rewrite() recreated an existing revision, discard - # the intermediate revision if any. No need to update - # phases or parents. - # XXX: need another message in collapse case. - tr.close() - raise error.Abort(_('no updates found')) - tr.close() - finally: - tr.release() - finally: - wlock.release() - finally: - lock.release() + opts = opts.copy() + edit = opts.pop('edit', False) + opts['amend'] = True + if not (edit or opts['message']): + opts['message'] = repo['.'].description() + _alias, commitcmd = cmdutil.findcmd('commit', commands.table) + return commitcmd[0](ui, repo, *pats, **opts) def _commitfiltered(repo, ctx, match): """Recommit ctx with changed files not in match. Return the new @@ -1780,7 +1717,7 @@ obsoleted[:] = [str(i) for i in repo.revs('%lr', obsoleted)] if obsoleted and len(revs) > 1: - raise error.Abort(_('Can not graft multiple revision while ' + raise error.Abort(_('cannot graft multiple revisions while ' 'obsoleting (for now).')) return commitwrapper(orig, ui, repo,*revs, **kwargs) @@ -1794,7 +1731,7 @@ except KeyError: raise error.Abort(_('evolution extension requires rebase extension.')) - for cmd in ['amend', 'kill', 'uncommit', 'touch', 'fold']: + for cmd in ['kill', 'uncommit', 'touch', 'fold']: entry = extensions.wrapcommand(cmdtable, cmd, warnobserrors) diff -r dcda64966616 -r fa87604b359c hgext/pushexperiment.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hgext/pushexperiment.py Fri Nov 15 16:01:40 2013 -0500 @@ -0,0 +1,112 @@ +"""Small extension altering some push behavior + +- Add a new wire protocol command to exchange obsolescence markers. Sending the + raw file as a binary instead of using pushkey hack. +- Add a "push done" notification +- Push obsolescence marker before anything else (This works around the lack of global transaction) + +""" + +import errno +from StringIO import StringIO + +from mercurial.i18n import _ +from mercurial import extensions +from mercurial import wireproto +from mercurial import obsolete +from mercurial import localrepo + + +def client_pushobsmarkers(self, obsfile): + """wireprotocol peer method""" + self.requirecap('_push_experiment_pushobsmarkers_0', + _('push obsolete markers faster')) + ret, output = self._callpush('push_experiment_pushobsmarkers_0', obsfile) + for l in output.splitlines(True): + self.ui.status(_('remote: '), l) + return ret + + +def srv_pushobsmarkers(repo, proto): + """wireprotocol command""" + fp = StringIO() + proto.redirect() + proto.getfile(fp) + data = fp.getvalue() + fp.close() + lock = repo.lock() + try: + tr = repo.transaction('pushkey: obsolete markers') + try: + repo.obsstore.mergemarkers(tr, data) + tr.close() + finally: + tr.release() + finally: + lock.release() + return wireproto.pushres(0) + + +def syncpush(orig, repo, remote): + """wraper for obsolete.syncpush to use the fast way if possible""" + if not (obsolete._enabled and repo.obsstore): + return + if remote.capable('_push_experiment_pushobsmarkers_0'): + return # already pushed before changeset + remote.push_experiment_pushobsmarkers_0(obsfp) + return + return orig(repo, remote) + + +def client_notifypushend(self): + """wire peer command to notify a push is done""" + self.requirecap('_push_experiment_notifypushend_0', _('hook once push is all done')) + return self._call('push_experiment_notifypushend_0') + + +def srv_notifypushend(repo, proto): + """wire protocol command to notify a push is done""" + proto.redirect() + repo.hook('notifypushend') + return wireproto.pushres(0) + + +def augmented_push(orig, repo, remote, *args, **kwargs): + """push wrapped that call the wire protocol command""" + if not remote.canpush(): + raise util.Abort(_("destination does not support push")) + if (obsolete._enabled and repo.obsstore + and remote.capable('_push_experiment_pushobsmarkers_0')): + # push marker early to limit damage of pushing too early. + try: + obsfp = repo.sopener('obsstore') + except IOError as e: + if e.errno != errno.ENOENT: + raise + else: + remote.push_experiment_pushobsmarkers_0(obsfp) + ret = orig(repo, remote, *args, **kwargs) + if remote.capable('_push_experiment_notifypushend_0'): + remote.push_experiment_notifypushend_0() + return ret + + +def capabilities(orig, repo, proto): + """wrapper to advertise new capability""" + caps = orig(repo, proto) + if obsolete._enabled: + caps += ' _push_experiment_pushobsmarkers_0' + caps += ' _push_experiment_notifypushend_0' + return caps + + +def extsetup(ui): + wireproto.wirepeer.push_experiment_pushobsmarkers_0 = client_pushobsmarkers + wireproto.wirepeer.push_experiment_notifypushend_0 = client_notifypushend + wireproto.commands['push_experiment_pushobsmarkers_0'] = (srv_pushobsmarkers, '') + wireproto.commands['push_experiment_notifypushend_0'] = (srv_notifypushend, '') + extensions.wrapfunction(wireproto, 'capabilities', capabilities) + extensions.wrapfunction(obsolete, 'syncpush', syncpush) + extensions.wrapfunction(localrepo.localrepository, 'push', augmented_push) + + diff -r dcda64966616 -r fa87604b359c setup.py --- a/setup.py Sat Aug 10 17:30:44 2013 -0400 +++ b/setup.py Fri Nov 15 16:01:40 2013 -0500 @@ -5,7 +5,7 @@ setup( name='hg-evolve', - version='3.1.0', + version='3.2.0', author='Pierre-Yves David', maintainer='Pierre-Yves David', maintainer_email='pierre-yves.david@logilab.fr', @@ -14,5 +14,5 @@ long_description=open('README').read(), keywords='hg mercurial', license='GPLv2+', - py_modules=['hgext.evolve'], + py_modules=['hgext.evolve', 'hgext.pushexperiment'], ) diff -r dcda64966616 -r fa87604b359c tests/test-amend.t --- a/tests/test-amend.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-amend.t Fri Nov 15 16:01:40 2013 -0500 @@ -24,20 +24,20 @@ (branches are permanent and global, did you want a bookmark?) $ hg amend $ hg debugobsolete - 07f4944404050f47db2e5c5071e0e84e7a27bba9 a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob) - bd19cbe78fbfbd87eb33420c63986fe5f3154f2c 0 {'date': '* *', 'user': 'test'} (glob) + 07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 {'date': '* *', 'user': 'test'} (glob) + b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {'date': '* *', 'user': 'test'} (glob) $ hg branch foo $ hg branches - foo 2:a34b93d251e4 + foo 2:6a022cbb61d5 $ glog @ 2@foo(draft) adda Test no-op $ hg amend - abort: no updates found - [255] + nothing changed + [1] $ glog @ 2@foo(draft) adda @@ -45,8 +45,8 @@ Test forcing the message to the same value, no intermediate revision. $ hg amend -m 'adda' - abort: no updates found - [255] + nothing changed + [1] $ glog @ 2@foo(draft) adda @@ -60,7 +60,7 @@ M a $ hg pstatus $ hg diff - diff -r 2f97fe38810f a + diff -r f7a50201fe3a a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a * +0000 (glob) @@ -1,2 +1,1 @@ @@ -69,8 +69,8 @@ $ hg pdiff $ hg ci -m reseta $ hg debugobsolete - 07f4944404050f47db2e5c5071e0e84e7a27bba9 a34b93d251e49c93d5685ebacad785c73a7e8605 0 {'date': '* *', 'user': 'test'} (glob) - bd19cbe78fbfbd87eb33420c63986fe5f3154f2c 0 {'date': '* *', 'user': 'test'} (glob) + 07f4944404050f47db2e5c5071e0e84e7a27bba9 6a022cbb61d5ba0f03f98ff2d36319dfea1034ae 0 {'date': '* *', 'user': 'test'} (glob) + b2e32ffb533cbe1d5759638c0cd4e8abc43b2738 0 {'date': '* *', 'user': 'test'} (glob) $ hg phase 2 2: draft $ glog diff -r dcda64966616 -r fa87604b359c tests/test-evolve.t --- a/tests/test-evolve.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-evolve.t Fri Nov 15 16:01:40 2013 -0500 @@ -215,11 +215,7 @@ and **amend**:: - $ hg amend --note "fix spelling of Zwei" - -The `--note` is our commit message for the *update* only. So its only purpose -is to document the evolution of the changeset. If we use `--message` with -`amend`, it replaces the commit message of the changeset itself. + $ hg amend This results in a new single changeset for our amended changeset, and the old changeset plus the updating changeset are hidden from view by default:: @@ -241,7 +237,7 @@ (amend of on ancestors) - $ hg amend --note 'french looks better' + $ hg amend 1 new unstable changesets $ hg log 6 feature-A: a nifty feature - test @@ -250,13 +246,13 @@ 0 : base - test $ hg up -q 0 $ glog --hidden - o 6:23409eba69a0@default(draft) a nifty feature + o 6:ba0ec09b1bab@default(draft) a nifty feature | - | x 5:e416e48b2742@default(draft) french looks better + | x 5:c296b79833d1@default(draft) temporary amend commit for 568a468b60fc | | - | | o 4:f8111a076f09@default(draft) another feature + | | o 4:207cbc4ea7fe@default(draft) another feature | |/ - | | x 3:524e478d4811@default(draft) fix spelling of Zwei + | | x 3:5bb880fc0f12@default(draft) temporary amend commit for 7b36850622b2 | | | | | x 2:7b36850622b2@default(draft) another feature | |/ @@ -265,10 +261,10 @@ @ 0:e55e0562ee93@default(public) base $ hg debugobsolete - 7b36850622b2fd159fa30a4fb2a1edd2043b4a14 f8111a076f0975cbecb336e2bd3411be22b673fb 0 {'date': '* *', 'user': 'test'} (glob) - 524e478d4811d405c8771e4c441de4483bdf8b33 0 {'date': '* *', 'user': 'test'} (glob) - 568a468b60fc99a42d5d4ddbe181caff1eef308d 23409eba69a0986e90cd42252852c1e6da97af5b 0 {'date': '* *', 'user': 'test'} (glob) - e416e48b27428695d00c2a2cc4a0b9619482e63f 0 {'date': '* *', 'user': 'test'} (glob) + 7b36850622b2fd159fa30a4fb2a1edd2043b4a14 207cbc4ea7fee30d18b3a25f534fe5db22c6071b 0 {'date': '* *', 'user': 'test'} (glob) + 5bb880fc0f12dd61eee6de36f62b93fdbc3684b0 0 {'date': '* *', 'user': 'test'} (glob) + 568a468b60fc99a42d5d4ddbe181caff1eef308d ba0ec09b1babf3489b567853807f452edd46704f 0 {'date': '* *', 'user': 'test'} (glob) + c296b79833d1d497f33144786174bf35e04e44a3 0 {'date': '* *', 'user': 'test'} (glob) $ hg evolve move:[4] another feature atop:[6] a nifty feature @@ -313,9 +309,9 @@ recreate:[8] another feature that rox atop:[7] another feature computing new diff - commited as 53ff506edef1 + commited as ca3b75e3e59b $ hg glog - @ 9 feature-B: bumped update to 5f4744038ed5: - test + @ 9 feature-B: bumped update to abe98aeaaa35: - test | o 7 : another feature - test | diff -r dcda64966616 -r fa87604b359c tests/test-obsolete.t --- a/tests/test-obsolete.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-obsolete.t Fri Nov 15 16:01:40 2013 -0500 @@ -119,7 +119,16 @@ 4 - 725c380fe99b $ hg up --hidden 3 -q - Working directory parent is obsolete + working directory parent is obsolete! +(reported by parents too) + $ hg parents + changeset: 3:0d3f46688ccc + parent: 1:7c3bad9141dc + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: add obsol_c + + working directory parent is obsolete! $ mkcommit d # 5 (on 3) 1 new unstable changesets $ qlog -r 'obsolete()' @@ -193,7 +202,7 @@ 0 - 1f0dee641bb7 $ hg up --hidden 3 -q - Working directory parent is obsolete + working directory parent is obsolete! $ mkcommit obsol_d # 6 created new head 1 new unstable changesets @@ -249,7 +258,7 @@ [1] $ hg up --hidden -q .^ # 3 - Working directory parent is obsolete + working directory parent is obsolete! $ mkcommit "obsol_d'" # 7 created new head 1 new unstable changesets @@ -336,7 +345,7 @@ Test rollback support $ hg up --hidden .^ -q # 3 - Working directory parent is obsolete + working directory parent is obsolete! $ mkcommit "obsol_d''" created new head 1 new unstable changesets diff -r dcda64966616 -r fa87604b359c tests/test-prune.t --- a/tests/test-prune.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-prune.t Fri Nov 15 16:01:40 2013 -0500 @@ -218,7 +218,7 @@ working directory now at d62d843c9a01 bookmark 'todelete' deleted $ hg id -ir dcbb326fdec2 - abort: 00changelog.i@dcbb326fdec2*: no node! (glob) + abort: unknown revision 'dcbb326fdec2'! [255] $ hg id -ir d62d843c9a01 d62d843c9a01 @@ -229,6 +229,6 @@ 3 changesets pruned bookmark 'delete' deleted $ hg id -ir 6:2702dd0c91e7 - abort: 00changelog.i@2702dd0c91e7*: no node! (glob) + abort: unknown revision '2702dd0c91e7'! [255] diff -r dcda64966616 -r fa87604b359c tests/test-stabilize-conflict.t --- a/tests/test-stabilize-conflict.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-stabilize-conflict.t Fri Nov 15 16:01:40 2013 -0500 @@ -82,13 +82,13 @@ merging babar $ hg resolve -l $ hg log -G - @ changeset: 5:800217d738cd + @ changeset: 5:71c18f70c34f | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to fifteen | - o changeset: 4:6bd654225435 + o changeset: 4:5977072d13c5 | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -109,7 +109,7 @@ [4] babar count up to ten $ safesed 's/dix/ten/' babar $ hg diff - diff -r 6bd654225435 babar + diff -r 5977072d13c5 babar --- a/babar Thu Jan 01 00:00:00 1970 +0000 +++ b/babar * (glob) @@ -7,4 +7,4 @@ @@ -133,19 +133,19 @@ $ hg resolve -l U babar $ hg log -G - @ changeset: 7:3e191dd96e18 + @ changeset: 7:e04690b09bc6 | tag: tip | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to ten | - | @ changeset: 5:800217d738cd + | @ changeset: 5:71c18f70c34f | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: babar count up to fifteen | | - | x changeset: 4:6bd654225435 + | x changeset: 4:5977072d13c5 |/ parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -166,13 +166,13 @@ grafting revision 5 $ hg resolve -l $ hg log -G - @ changeset: 8:92429cce7036 + @ changeset: 8:1836b91c6c1d | tag: tip | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to fifteen | - o changeset: 7:3e191dd96e18 + o changeset: 7:e04690b09bc6 | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 @@ -193,7 +193,7 @@ [7] babar count up to ten $ safesed 's/ten/zehn/' babar $ hg diff - diff -r 3e191dd96e18 babar + diff -r e04690b09bc6 babar --- a/babar Thu Jan 01 00:00:00 1970 +0000 +++ b/babar * (glob) @@ -7,4 +7,4 @@ @@ -220,19 +220,19 @@ $ hg resolve -l U babar $ hg log -G - @ changeset: 10:a7fe09efd4a1 + @ changeset: 10:b20d08eea373 | tag: tip | parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: babar count up to ten | - | @ changeset: 8:92429cce7036 + | @ changeset: 8:1836b91c6c1d | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: babar count up to fifteen | | - | x changeset: 7:3e191dd96e18 + | x changeset: 7:e04690b09bc6 |/ parent: 0:29ec1554cfaf | user: test | date: Thu Jan 01 00:00:00 1970 +0000 diff -r dcda64966616 -r fa87604b359c tests/test-stabilize-order.t --- a/tests/test-stabilize-order.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-stabilize-order.t Fri Nov 15 16:01:40 2013 -0500 @@ -47,9 +47,9 @@ $ hg amend 1 new unstable changesets $ glog - @ 7:f5ff10856e5a@default(draft) adda + @ 7:005fe5914f78@default(draft) adda | - | o 5:ab8cbb6d87ff@default(draft) addb + | o 5:22619daeed78@default(draft) addb | | | | o 3:7a7552255fb5@default(draft) addc | | | @@ -65,14 +65,14 @@ $ hg evolve -v move:[5] addb atop:[7] adda - hg rebase -r ab8cbb6d87ff -d f5ff10856e5a + hg rebase -r 22619daeed78 -d 005fe5914f78 resolving manifests getting b b $ glog - @ 8:6bf44048e43f@default(draft) addb + @ 8:bede829dd2d3@default(draft) addb | - o 7:f5ff10856e5a@default(draft) adda + o 7:005fe5914f78@default(draft) adda | | o 3:7a7552255fb5@default(draft) addc | | @@ -91,7 +91,7 @@ $ hg evolve -v move:[3] addc atop:[8] addb - hg rebase -r 7a7552255fb5 -d 6bf44048e43f + hg rebase -r 7a7552255fb5 -d bede829dd2d3 resolving manifests getting b resolving manifests @@ -102,17 +102,20 @@ --- successors.old* (glob) +++ successors.new* (glob) @@ -3,3 +3,4 @@ - 93418d2c0979643ad446f621195e78720edb05b4 f5ff10856e5ab3c8dc420b9c11460e6832a3b78c 0 {'date': '* *', 'user': 'test'} (glob) - 3a4a591493f80708e46f2bf6d3b4debfad8ff91e 0 {'date': '* *', 'user': 'test'} (glob) - ab8cbb6d87ff3ab5526735a051cba6b63f3d6775 6bf44048e43f830accbf7d2bd7bc252ad7a3b99c 0 {'date': '* *', 'user': 'test'} (glob) - +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 5e819fbb0d278117c0a83b7f6f6486689732cfb2 0 {'date': '* *', 'user': 'test'} (glob) + 93418d2c0979643ad446f621195e78720edb05b4 005fe5914f78e8bc64c7eba28117b0b1fa210d0d 0 {'date': '* *', 'user': 'test'} (glob) + 7a7d76dc97c57751de9e80f61ed2a639bd03cd24 0 {'date': '* *', 'user': 'test'} (glob) + 22619daeed78036f80fbd326b6852519c4f0c25e bede829dd2d3b2ae9bf198c23432b250dc964458 0 {'date': '* *', 'user': 'test'} (glob) + +7a7552255fb5f8bd745e46fba6f0ca633a4dd716 65095d7d0dd5e4f15503bb7b1f433a5fe9bac052 0 {'date': '* *', 'user': 'test'} (glob) [1] + + + $ glog - @ 9:5e819fbb0d27@default(draft) addc + @ 9:65095d7d0dd5@default(draft) addc | - o 8:6bf44048e43f@default(draft) addb + o 8:bede829dd2d3@default(draft) addb | - o 7:f5ff10856e5a@default(draft) adda + o 7:005fe5914f78@default(draft) adda | o 0:c471ef929e6a@default(draft) addroot @@ -128,13 +131,13 @@ $ hg amend 1 new unstable changesets $ glog - @ 11:4e7cec6b4afe@default(draft) addb + @ 11:036cf654e942@default(draft) addb | - | o 9:5e819fbb0d27@default(draft) addc + | o 9:65095d7d0dd5@default(draft) addc | | - | x 8:6bf44048e43f@default(draft) addb + | x 8:bede829dd2d3@default(draft) addb |/ - o 7:f5ff10856e5a@default(draft) adda + o 7:005fe5914f78@default(draft) adda | o 0:c471ef929e6a@default(draft) addroot @@ -147,7 +150,7 @@ $ hg evolve --any -v move:[9] addc atop:[11] addb - hg rebase -r 5e819fbb0d27 -d 4e7cec6b4afe + hg rebase -r 65095d7d0dd5 -d 036cf654e942 resolving manifests removing c getting b @@ -155,11 +158,11 @@ getting c c $ glog - @ 12:24f95816bb21@default(draft) addc + @ 12:e99ecf51c867@default(draft) addc | - o 11:4e7cec6b4afe@default(draft) addb + o 11:036cf654e942@default(draft) addb | - o 7:f5ff10856e5a@default(draft) adda + o 7:005fe5914f78@default(draft) adda | o 0:c471ef929e6a@default(draft) addroot diff -r dcda64966616 -r fa87604b359c tests/test-stabilize-result.t --- a/tests/test-stabilize-result.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-stabilize-result.t Fri Nov 15 16:01:40 2013 -0500 @@ -31,12 +31,12 @@ $ hg evolve -v move:[2] changea atop:[4] changea - hg rebase -r cce2c55b8965 -d 1447e1c4828d + hg rebase -r cce2c55b8965 -d fb9d051ec0a4 resolving manifests $ glog --hidden - @ 4:1447e1c4828d@default(draft) bk:[changea] changea + @ 4:fb9d051ec0a4@default(draft) bk:[changea] changea | - | x 3:41ad4fe8c795@default(draft) bk:[] amends 102a90ea7b4a3361e4082ed620918c261189a36a + | x 3:c5727dbded3c@default(draft) bk:[] temporary amend commit for 102a90ea7b4a | | | | x 2:cce2c55b8965@default(draft) bk:[] changea | |/ @@ -45,8 +45,8 @@ o 0:07f494440405@default(draft) bk:[] adda $ hg debugobsolete - 102a90ea7b4a3361e4082ed620918c261189a36a 1447e1c4828d2347df8f858aa041305fa4cf7db1 0 {'date': '* *', 'user': 'test'} (glob) - 41ad4fe8c79565a06c89f032ef0937b3cbd68a04 0 {'date': '* *', 'user': 'test'} (glob) + 102a90ea7b4a3361e4082ed620918c261189a36a fb9d051ec0a450a4aa2ffc8c324979832ef88065 0 {'date': '* *', 'user': 'test'} (glob) + c5727dbded3c3a6877cf60d6bb552a76812cb844 0 {'date': '* *', 'user': 'test'} (glob) cce2c55b896511e0b6e04173c9450ba822ebc740 0 {'date': '* *', 'user': 'test'} (glob) Test evolve with conflict @@ -81,7 +81,7 @@ [255] $ hg revert -r 'unstable()' a $ hg diff - diff -r e8cc1b534401 a + diff -r 66719795a494 a --- a/a * (glob) +++ b/a * (glob) @@ -1,1 +1,3 @@ @@ -102,9 +102,9 @@ (the same parent case is handled in test-evolve.t) $ glog - @ 8:e3183e9c0961@default(draft) bk:[] newer a + @ 8:1cf0aacfd363@default(draft) bk:[] newer a | - o 7:e8cc1b534401@default(draft) bk:[changea] changea + o 7:66719795a494@default(draft) bk:[changea] changea | o 0:07f494440405@default(draft) bk:[] adda @@ -132,13 +132,13 @@ $ hg phase --hidden --public 8 1 new bumped changesets $ glog - @ 12:15c83af6f3a3@default(draft) bk:[] newer a + @ 12:73b15c7566e9@default(draft) bk:[] newer a | - o 9:355c5cda4de1@default(draft) bk:[] add c + o 9:7bc2f5967f5e@default(draft) bk:[] add c | - | o 8:e3183e9c0961@default(public) bk:[] newer a + | o 8:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:e8cc1b534401@default(public) bk:[changea] changea + o 7:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -148,24 +148,24 @@ $ hg evolve --any --dry-run recreate:[12] newer a atop:[8] newer a - hg rebase --rev 15c83af6f3a3 --dest e8cc1b534401; - hg update e3183e9c0961; - hg revert --all --rev 15c83af6f3a3; + hg rebase --rev 73b15c7566e9 --dest 66719795a494; + hg update 1cf0aacfd363; + hg revert --all --rev 73b15c7566e9; hg commit --msg "bumped update to %s" (no-eol) $ hg evolve --any recreate:[12] newer a atop:[8] newer a - rebasing to destination parent: e8cc1b534401 + rebasing to destination parent: 66719795a494 computing new diff - commited as eeeb8f6e7648 + commited as a7cabd7bd9c2 $ glog - @ 14:eeeb8f6e7648@default(draft) bk:[] bumped update to e3183e9c0961: + @ 14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363: | - | o 9:355c5cda4de1@default(draft) bk:[] add c + | o 9:7bc2f5967f5e@default(draft) bk:[] add c | | - o | 8:e3183e9c0961@default(public) bk:[] newer a + o | 8:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:e8cc1b534401@default(public) bk:[changea] changea + o 7:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -186,15 +186,15 @@ > EOF $ hg ci -m 'More addition' $ glog - @ 15:7391601a4bfa@default(draft) bk:[] More addition + @ 15:3932c176bbaa@default(draft) bk:[] More addition | - | o 14:eeeb8f6e7648@default(draft) bk:[] bumped update to e3183e9c0961: + | o 14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363: | | - o | 9:355c5cda4de1@default(draft) bk:[] add c + o | 9:7bc2f5967f5e@default(draft) bk:[] add c | | - | o 8:e3183e9c0961@default(public) bk:[] newer a + | o 8:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:e8cc1b534401@default(public) bk:[changea] changea + o 7:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -202,7 +202,7 @@ $ hg amend $ hg up --hidden 15 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - Working directory parent is obsolete + working directory parent is obsolete! $ mv a a.old $ echo 'jungle' > a $ cat a.old >> a @@ -210,17 +210,17 @@ $ hg amend 2 new divergent changesets $ glog - @ 19:3883461cc228@default(draft) bk:[] More addition + @ 19:eacc9c8240fe@default(draft) bk:[] More addition | - | o 17:4754d61bc2db@default(draft) bk:[] More addition + | o 17:d2f173e25686@default(draft) bk:[] More addition |/ - | o 14:eeeb8f6e7648@default(draft) bk:[] bumped update to e3183e9c0961: + | o 14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363: | | - o | 9:355c5cda4de1@default(draft) bk:[] add c + o | 9:7bc2f5967f5e@default(draft) bk:[] add c | | - | o 8:e3183e9c0961@default(public) bk:[] newer a + | o 8:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:e8cc1b534401@default(public) bk:[changea] changea + o 7:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda @@ -228,12 +228,12 @@ Stabilize It $ hg evolve -qn --traceback - hg update -c 3883461cc228 && - hg merge 4754d61bc2db && - hg commit -m "auto merge resolving conflict between 3883461cc228 and 4754d61bc2db"&& - hg up -C 7391601a4bfa && + hg update -c eacc9c8240fe && + hg merge d2f173e25686 && + hg commit -m "auto merge resolving conflict between eacc9c8240fe and d2f173e25686"&& + hg up -C 3932c176bbaa && hg revert --all --rev tip && - hg commit -m "`hg log -r 3883461cc228 --template={desc}`"; + hg commit -m "`hg log -r eacc9c8240fe --template={desc}`"; $ hg evolve -v merge:[19] More addition with: [17] More addition @@ -242,25 +242,27 @@ resolving manifests merging a 0 files updated, 1 files merged, 0 files removed, 0 files unresolved + amending changeset eacc9c8240fe a + copying changeset 283ccd10e2b8 to 7bc2f5967f5e a + committed changeset 21:f344982e63c4 $ hg st - $ hg amend -d '0 0' -m 'More addition' # kill date variation XXX should be done in evolve $ glog - @ 22:ac6d600735a4@default(draft) bk:[] More addition + @ 21:f344982e63c4@default(draft) bk:[] More addition | - | o 14:eeeb8f6e7648@default(draft) bk:[] bumped update to e3183e9c0961: + | o 14:a7cabd7bd9c2@default(draft) bk:[] bumped update to 1cf0aacfd363: | | - o | 9:355c5cda4de1@default(draft) bk:[] add c + o | 9:7bc2f5967f5e@default(draft) bk:[] add c | | - | o 8:e3183e9c0961@default(public) bk:[] newer a + | o 8:1cf0aacfd363@default(public) bk:[] newer a |/ - o 7:e8cc1b534401@default(public) bk:[changea] changea + o 7:66719795a494@default(public) bk:[changea] changea | o 0:07f494440405@default(public) bk:[] adda $ hg summary - parent: 22:ac6d600735a4 tip + parent: 21:f344982e63c4 tip More addition branch: default commit: (clean) @@ -269,11 +271,12 @@ # HG changeset patch # User test # Date 0 0 - # Node ID ac6d600735a49ee377e29d1f74a0576e8c972e7b - # Parent 355c5cda4de162658ed9f961a98a73a10b3167b1 + # Thu Jan 01 00:00:00 1970 +0000 + # Node ID f344982e63c462b1e44c0371c804685389e673a9 + # Parent 7bc2f5967f5e4ed277f60a89b7b04cc5d6407ced More addition - diff -r 355c5cda4de1 -r ac6d600735a4 a + diff -r 7bc2f5967f5e -r f344982e63c4 a --- a/a Thu Jan 01 00:00:00 1970 +0000 +++ b/a Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +1,9 @@ @@ -292,23 +295,23 @@ $ hg up --hidden 15 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - Working directory parent is obsolete + working directory parent is obsolete! $ echo 'gotta break' >> a $ hg amend 2 new divergent changesets $ hg phase 'divergent()' - 22: draft - 24: draft + 21: draft + 23: draft $ hg evolve -qn - hg update -c c956a4b140b6 && - hg merge ac6d600735a4 && - hg commit -m "auto merge resolving conflict between c956a4b140b6 and ac6d600735a4"&& - hg up -C 7391601a4bfa && + hg update -c 36e188246d67 && + hg merge f344982e63c4 && + hg commit -m "auto merge resolving conflict between 36e188246d67 and f344982e63c4"&& + hg up -C 3932c176bbaa && hg revert --all --rev tip && - hg commit -m "`hg log -r c956a4b140b6 --template={desc}`"; + hg commit -m "`hg log -r 36e188246d67 --template={desc}`"; $ hg evolve - merge:[24] More addition - with: [22] More addition + merge:[23] More addition + with: [21] More addition base: [15] More addition merging a warning: conflicts during merge. diff -r dcda64966616 -r fa87604b359c tests/test-touch.t --- a/tests/test-touch.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-touch.t Fri Nov 15 16:01:40 2013 -0500 @@ -33,7 +33,7 @@ $ hg commit -m ab --amend $ hg up --hidden 1 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - Working directory parent is obsolete + working directory parent is obsolete! $ hg log -G o 3:[0-9a-f]{12} ab (re) diff -r dcda64966616 -r fa87604b359c tests/test-tutorial.t --- a/tests/test-tutorial.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-tutorial.t Fri Nov 15 16:01:40 2013 -0500 @@ -128,6 +128,7 @@ # HG changeset patch # User test # Date 0 0 + # Thu Jan 01 00:00:00 1970 +0000 # Node ID d85de4546133030c82d257bbcdd9b1b416d0c31c # Parent 4d5dc81870237d492284826e21840b2ca00e26d1 adding fruit @@ -184,6 +185,7 @@ # HG changeset patch # User test # Date 0 0 + # Thu Jan 01 00:00:00 1970 +0000 # Node ID 9d0363b81950646bc6ad1ec5de8b8197ea586541 # Parent 4d5dc81870237d492284826e21840b2ca00e26d1 adding fruit @@ -365,6 +367,7 @@ # HG changeset patch # User test # Date 0 0 + # Thu Jan 01 00:00:00 1970 +0000 # Node ID a224f2a4fb9f9f828f608959912229d7b38b26de # Parent 41aff6a42b7578ec7ec3cb2041633f1ca43cca96 SPAM SPAM @@ -664,7 +667,7 @@ pulling from $TESTTMP/local searching for changes no changes found - Working directory parent is obsolete + working directory parent is obsolete! $ hg up ee942144f952 1 files updated, 0 files merged, 0 files removed, 0 files unresolved diff -r dcda64966616 -r fa87604b359c tests/test-uncommit.t --- a/tests/test-uncommit.t Sat Aug 10 17:30:44 2013 -0400 +++ b/tests/test-uncommit.t Fri Nov 15 16:01:40 2013 -0500 @@ -238,7 +238,7 @@ $ hg up -C 3 --hidden 8 files updated, 0 files merged, 1 files removed, 0 files unresolved - Working directory parent is obsolete + working directory parent is obsolete! $ hg --config extensions.purge= purge $ hg uncommit -I 'set:added() and e' 2 new divergent changesets @@ -282,7 +282,7 @@ $ hg up -C 3 --hidden 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - Working directory parent is obsolete + working directory parent is obsolete! $ hg --config extensions.purge= purge $ hg uncommit --all -X e 1 new divergent changesets