# HG changeset patch # User Pierre-Yves David # Date 1316020838 -7200 # Node ID 9906560f585e14c9eaad1831fe2b58b12cd8009a # Parent ddcc4bb6c4d405ed468ce0608cddbb252d8bf67f [obsolete] issue a warning when parent of current directory is obsolete. diff -r ddcc4bb6c4d4 -r 9906560f585e hgext/obsolete.py --- a/hgext/obsolete.py Wed Sep 14 17:55:17 2011 +0200 +++ b/hgext/obsolete.py Wed Sep 14 19:20:38 2011 +0200 @@ -86,6 +86,7 @@ from mercurial import pushkey from mercurial import discovery from mercurial import error +from mercurial import commands from mercurial.node import hex, bin, short from mercurial.lock import release @@ -228,6 +229,19 @@ cmdtable = {'debugobsolete': (cmddebugobsolete, [], ' ')} +### Altering existing command +############################# + +def wrapmayobsoletewc(origfn, ui, repo, *args, **opts): + res = origfn(ui, repo, *args, **opts) + if repo['.'].obsolete(): + ui.warn(_('Working directory parent is obsolete\n')) + return res + +def uisetup(ui): + extensions.wrapcommand(commands.table, "update", wrapmayobsoletewc) + extensions.wrapcommand(commands.table, "pull", wrapmayobsoletewc) + ### serialisation ############################# diff -r ddcc4bb6c4d4 -r 9906560f585e tests/test-obsolete.t --- a/tests/test-obsolete.t Wed Sep 14 17:55:17 2011 +0200 +++ b/tests/test-obsolete.t Wed Sep 14 19:20:38 2011 +0200 @@ -67,6 +67,7 @@ 3 - 0d3f46688ccc $ hg up 3 -q + Working directory parent is obsolete $ mkcommit d # 5 (on 3) $ qlog -r 'obsolete()' 3 @@ -98,6 +99,7 @@ 0 - 1f0dee641bb7 $ hg up 3 -q + Working directory parent is obsolete $ mkcommit obsol_d # 6 created new head $ hg debugobsolete 6 5 @@ -136,7 +138,8 @@ $ qlog -R ../other-new -r 'obsolete()' 2 - 0d3f46688ccc - $ hg up -q .^ + $ hg up -q .^ # 3 + Working directory parent is obsolete $ mkcommit "obsol_d'" # 7 created new head $ hg debugobsolete 7 6 @@ -218,7 +221,8 @@ Test rollback support - $ hg up .^ -q + $ hg up .^ -q # 3 + Working directory parent is obsolete $ mkcommit "obsol_d''" created new head $ hg debugobsolete 8 7