# HG changeset patch # User Pierre-Yves David # Date 1325072281 -3600 # Node ID 64ca29eef349fff6bea4068e72b4c3983ce2e611 # Parent d60eddda954697aac4e991562cc3ef0b9b4cb94d Add a -o option to commit diff --git a/hgext/evolution.py b/hgext/evolution.py --- a/hgext/evolution.py +++ b/hgext/evolution.py @@ -18,6 +18,7 @@ from mercurial import bookmarks from mercurial import phases from mercurial import context +from mercurial import commands from mercurial import util from mercurial.i18n import _ from mercurial.commands import walkopts, commitopts, commitopts2, logopts @@ -300,3 +301,19 @@ finally: wlock.release() + +def commitwrapper(orig, ui, repo, *arg, **kwargs): + obsoleted = kwargs.get('obsolete', []) + if obsoleted: + obsoleted = repo.set('%lr', obsoleted) + result = orig(ui, repo, *arg, **kwargs) + if not result: # commit successed + new = repo['-1'] + for old in obsoleted: + repo.addobsolete(new.node(), old.node()) + return result + +def extsetup(ui): + entry = extensions.wrapcommand(commands.table, 'commit', commitwrapper) + entry[1].append(('o', 'obsolete', [], _("this commit obsolet this revision"))) + diff --git a/tests/test-evolution.t b/tests/test-evolution.t --- a/tests/test-evolution.t +++ b/tests/test-evolution.t @@ -216,3 +216,14 @@ 7 feature-B: another feature - test 6 feature-A: a nifty feature - test 0 : base - test + +Test commit -o options + + $ hg up 6 + $ hg revert -r 7 --all + $ sed -i'' -e s/Zwei/deux/ main-file-1 + $ hg commit -m 'Feature B' -o 7 + $ hg log + 8 feature-B: another feature - test + 6 feature-A: a nifty feature - test + 0 : base - test