diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -1852,6 +1852,16 @@ def user(repo, subset, x): """ return author(repo, subset, x) +def wdir(repo, subset, x): + """``wdir()`` + Working directory. + """ + # i18n: "wdir" is a keyword + getargs(x, 0, 0, _("wdir takes no arguments")) + if None in subset: + return baseset([None]) + return baseset() + # for internal use def _list(repo, subset, x): s = getstring(x, "internal error") @@ -1947,6 +1957,7 @@ symbols = { "tagged": tagged, "user": user, "unstable": unstable, + "wdir": wdir, "_list": _list, "_intlist": _intlist, "_hexlist": _hexlist, @@ -2019,6 +2030,7 @@ safesymbols = set([ "tagged", "user", "unstable", + "wdir", "_list", "_intlist", "_hexlist", diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -509,6 +509,14 @@ Test null revision 1 0 +Test working-directory revision + $ hg debugrevspec 'wdir()' + None + $ hg debugrevspec 'tip or wdir()' + 9 + None + $ hg debugrevspec '0:tip and wdir()' + $ log 'outgoing()' 8 9 diff --git a/tests/test-status.t b/tests/test-status.t --- a/tests/test-status.t +++ b/tests/test-status.t @@ -240,6 +240,17 @@ Check 'status -q' and some combinations $ rm deleted $ hg copy modified copied +Specify working directory revision explicitly, that should be the same as +"hg status" + + $ hg status --change "wdir()" + M modified + A added + A copied + R removed + ! deleted + ? unknown + Run status with 2 different flags. Check if result is the same or different. If result is not as expected, raise error