--- a/.hgtags Sat Aug 10 17:30:44 2013 -0400
+++ b/.hgtags Thu Dec 26 17:21:01 2013 -0800
@@ -18,3 +18,4 @@
f9d305deeff3dba782e65faf4ef3fd1569995859 2.1.0
862b6b71a35836e81f090ba7229c2888e8ed2f9f 3.0.0
cdb52bbbe5b8770d5e68943b7e73bee4ba136ecc 3.1.0
+c3ba8a965a7a173e388d84819e936ea9bae9797f 3.2.0
--- a/MANIFEST.in Sat Aug 10 17:30:44 2013 -0400
+++ b/MANIFEST.in Thu Dec 26 17:21:01 2013 -0800
@@ -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
--- a/README Sat Aug 10 17:30:44 2013 -0400
+++ b/README Thu Dec 26 17:21:01 2013 -0800
@@ -42,6 +42,19 @@
Changelog
=========
+3.2.0 -- 2013-11-15
+
+- 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
+- evolve command: allow updating to the successor if the parent is
+ obsolete
+- gdown and gup commands: add next and previous alias, respectively
+- make grab aliases compatible with Mercurial 2.8
+- Tested with 2.6, 2.7 and 2.8
+
3.1.0 -- 2013-02-11
- amend: drop deprecated --change option for amend
--- a/debian/changelog Sat Aug 10 17:30:44 2013 -0400
+++ b/debian/changelog Thu Dec 26 17:21:01 2013 -0800
@@ -1,3 +1,9 @@
+mercurial-evolve (3.2.0-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+
+ -- Julien Cristau <julien.cristau@logilab.fr> Tue, 04 Jun 2013 17:28:02 +0200
+
mercurial-evolve (3.1.0-1) UNRELEASED; urgency=low
* New upstream release.
--- a/debian/control Sat Aug 10 17:30:44 2013 -0400
+++ b/debian/control Thu Dec 26 17:21:01 2013 -0800
@@ -7,8 +7,7 @@
Pierre-Yves David <pierre-yves.david@logilab.fr>,
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.
--- a/debian/rules Sat Aug 10 17:30:44 2013 -0400
+++ b/debian/rules Thu Dec 26 17:21:01 2013 -0800
@@ -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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/source/format Thu Dec 26 17:21:01 2013 -0800
@@ -0,0 +1,1 @@
+3.0 (quilt)
--- a/hgext/evolve.py Sat Aug 10 17:30:44 2013 -0400
+++ b/hgext/evolve.py Thu Dec 26 17:21:01 2013 -0800
@@ -19,7 +19,7 @@
- improves some aspect of the early implementation in 2.3
'''
-testedwith = '2.5'
+testedwith = '2.7 2.7.1 2.7.2 2.8 2.8.1'
buglink = 'https://bitbucket.org/marmoute/mutable-history/issues'
import sys
@@ -381,7 +381,7 @@
if ui.config('alias', 'odiff', None) is None:
ui.setconfig('alias', 'odiff', "diff --hidden --rev 'limit(precursors(.),1)' --rev .")
if ui.config('alias', 'grab', None) is None:
- ui.setconfig('alias', 'grab', "rebase --dest . --rev $1")
+ ui.setconfig('alias', 'grab', "! $HG rebase --dest . --rev $@ && $HG up tip")
### Troubled revset symbol
@@ -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
@@ -603,13 +604,11 @@
if not repo.local():
return
- opush = repo.push
-
class evolvingrepo(repo.__class__):
def push(self, remote, *args, **opts):
"""wrapper around pull that pull obsolete relation"""
try:
- result = opush(remote, *args, **opts)
+ result = super(evolvingrepo, self).push(remote, *args, **opts)
except util.Abort, ex:
hint = _("use 'hg evolve' to get a stable history "
"or --force to ignore warnings")
@@ -849,6 +848,8 @@
- rebase unstable changeset to make it stable again,
- create proper diff from bumped changeset,
- merge divergent changesets.
+ - update to a successor if the working directory parent is
+ obsolete
By default, take the first trouble changeset that looks relevant.
@@ -880,6 +881,40 @@
tr = _picknexttroubled(ui, repo, anyopt or allopt)
if tr is None:
+ if repo['.'].obsolete():
+ displayer = cmdutil.show_changeset(ui, repo, {'template': shorttemplate})
+ successors = set()
+
+ for successorsset in obsolete.successorssets(repo, repo['.'].node()):
+ for nodeid in successorsset:
+ successors.add(repo[nodeid])
+
+ if not successors:
+ ui.warn(_('parent is obsolete without successors; ' +
+ 'likely killed\n'))
+ return 2
+
+ elif len(successors) > 1:
+ ui.warn(_('parent is obsolete with multiple successors:\n'))
+
+ for ctx in sorted(successors, key=lambda ctx: ctx.rev()):
+ displayer.show(ctx)
+
+ return 2
+
+ else:
+ ctx = successors.pop()
+
+ ui.status(_('update:'))
+ if not ui.quiet:
+ displayer.show(ctx)
+
+ if dryrunopt:
+ print 'hg update %s' % ctx.rev()
+ return 0
+ else:
+ return hg.update(repo, ctx.rev())
+
troubled = repo.revs('troubled()')
if troubled:
ui.write_err(_('nothing to evolve here\n'))
@@ -1166,7 +1201,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
@@ -1194,16 +1229,17 @@
newer = [n for n in newer if n and ctx.node() not in n]
if newer:
return base, tuple(ctx._repo[o] for o in newer[0])
- raise KeyError('Base seem unknown. This case is not handled yet.')
+ raise util.Abort('base of divergent changeset not found',
+ hint='this case is not yet handled')
shorttemplate = '[{rev}] {desc|firstline}\n'
-@command('^gdown',
+@command('^gdown|previous',
[],
'')
-def cmdgdown(ui, repo):
+def cmdprevious(ui, repo):
"""update to parent and display summary lines"""
wkctx = repo[None]
wparents = wkctx.parents()
@@ -1223,10 +1259,10 @@
ui.warn(_('multiple parents, explicitly update to one\n'))
return 1
-@command('^gup',
+@command('^gup|next',
[],
'')
-def cmdup(ui, repo):
+def cmdnext(ui, repo):
"""update to child and display summary lines"""
wkctx = repo[None]
wparents = wkctx.parents()
@@ -1236,7 +1272,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 +1282,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 +1414,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 +1438,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 +1752,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 +1766,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)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hgext/pushexperiment.py Thu Dec 26 17:21:01 2013 -0800
@@ -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)
+
+
--- a/setup.py Sat Aug 10 17:30:44 2013 -0400
+++ b/setup.py Thu Dec 26 17:21:01 2013 -0800
@@ -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'],
)
--- a/tests/test-amend.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-amend.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
--- a/tests/test-evolve.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-evolve.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
|
--- a/tests/test-obsolete.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-obsolete.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
@@ -493,6 +502,8 @@
#excluded 'whole rebase set is extinct and ignored.' message not in core
$ hg rebase -b '3' -d 4 --traceback
2 new divergent changesets
+ $ hg up tip
+ ? files updated, 0 files merged, 0 files removed, 0 files unresolved (glob)
$ hg log -G --template='{rev} - {node|short} {desc}\n'
@ 11 - 9468a5f5d8b2 add obsol_d''
|
@@ -506,6 +517,7 @@
Does not complain about new head if you obsolete the old one
+(re necesarry when we start runnind discovery on unfiltered repo in core)
$ hg push ../other-new --traceback
pushing to ../other-new
@@ -513,7 +525,7 @@
adding changesets
adding manifests
adding file changes
- added 2 changesets with 1 changes to 1 files
+ added 2 changesets with 1 changes to [12] files (re)
$ hg up -q 10
$ mkcommit "obsol_d'''"
created new head
@@ -652,3 +664,17 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: add obsolet_conflicting_d
+
+ $ hg up --hidden 3 -q
+ working directory parent is obsolete!
+ $ hg evolve
+ parent is obsolete with multiple successors:
+ [4] add obsol_c'
+ [10] add obsol_c
+ [2]
+ $ hg olog
+ changeset: 2:4538525df7e2
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: add c
+
--- a/tests/test-prune.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-prune.t Thu Dec 26 17:21:01 2013 -0800
@@ -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]
--- a/tests/test-stabilize-conflict.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-stabilize-conflict.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
--- a/tests/test-stabilize-order.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-stabilize-order.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
--- a/tests/test-stabilize-result.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-stabilize-result.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
@@ -121,6 +121,7 @@
Get a successors of 8 on it
$ hg grab 8
+ ? files updated, 0 files merged, 0 files removed, 0 files unresolved (glob)
Add real change to the successors
@@ -132,13 +133,13 @@
$ hg phase --hidden --public 8
1 new bumped changesets
$ glog
- @ 12:15c83af6f3a3@default(draft) bk:[] newer a
+ @ 12:(73b15c7566e9|d5c7ef82d003)@default\(draft\) bk:\[\] newer a (re)
|
- 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 +149,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|d5c7ef82d003) --dest 66719795a494; (re)
+ hg update 1cf0aacfd363;
+ hg revert --all --rev (73b15c7566e9|d5c7ef82d003); (re)
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|671b9d7eeaec) (re)
$ glog
- @ 14:eeeb8f6e7648@default(draft) bk:[] bumped update to e3183e9c0961:
+ @ 14:(a7cabd7bd9c2|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re)
|
- | 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 +187,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|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re)
| |
- 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 +203,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 +211,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|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re)
| |
- 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 +229,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 +243,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|671b9d7eeaec)@default\(draft\) bk:\[\] bumped update to 1cf0aacfd363: (re)
| |
- 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 +272,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 +296,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.
--- a/tests/test-touch.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-touch.t Thu Dec 26 17:21:01 2013 -0800
@@ -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)
--- a/tests/test-tutorial.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-tutorial.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
@@ -341,6 +343,8 @@
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg rebase --rev fac207dec9f5 --dest . # moving "SPAM SPAM" to the working directory parent
merging shopping
+ $ hg up tip
+ ? files updated, 0 files merged, 0 files removed, 0 files unresolved (glob)
$ hg log -G
@ a224f2a4fb9f (draft): SPAM SPAM
|
@@ -365,6 +369,7 @@
# HG changeset patch
# User test
# Date 0 0
+ # Thu Jan 01 00:00:00 1970 +0000
# Node ID a224f2a4fb9f9f828f608959912229d7b38b26de
# Parent 41aff6a42b7578ec7ec3cb2041633f1ca43cca96
SPAM SPAM
@@ -398,6 +403,8 @@
$ hg rebase -r 10b8aeaa8cc8 -d a224f2a4fb9f
merging shopping
+ $ hg up tip
+ ? files updated, 0 files merged, 0 files removed, 0 files unresolved (glob)
$ hg phase --draft .
$ hg log -G
@ 75954b8cd933 (draft): bathroom stuff
@@ -664,9 +671,15 @@
pulling from $TESTTMP/local
searching for changes
no changes found
- Working directory parent is obsolete
+ working directory parent is obsolete!
+
+now let's see where we are, and update to the successor
- $ hg up ee942144f952
+ $ hg parents
+ bf1b0d202029 (draft): animals
+ working directory parent is obsolete!
+ $ hg evolve
+ update:[8] animals
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Relocating unstable change after prune
--- a/tests/test-uncommit.t Sat Aug 10 17:30:44 2013 -0400
+++ b/tests/test-uncommit.t Thu Dec 26 17:21:01 2013 -0800
@@ -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
@@ -328,7 +328,7 @@
$ hg ci -m touncommit
$ echo unrelated > unrelated
$ hg ci -Am addunrelated unrelated
- $ hg gdown
+ $ hg previous
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
[8] touncommit
$ hg uncommit aa