[obsolete] issue a warning when parent of current directory is obsolete.
--- 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, [], '<subject> <object>')}
+### 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
#############################
--- 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