diff --git a/hgext/uncommit.py b/hgext/uncommit.py --- a/hgext/uncommit.py +++ b/hgext/uncommit.py @@ -64,11 +64,11 @@ if not exclude: return None - files = (initialfiles - exclude) # return the p1 so that we don't create an obsmarker later if not keepcommit: return ctx.p1().node() + files = (initialfiles - exclude) # Filter copies copied = copiesmod.pathcopies(base, ctx) copied = dict((dst, src) for dst, src in copied.iteritems() @@ -83,6 +83,9 @@ copied=copied.get(path)) return mctx + if not files: + repo.ui.status(_("all files uncommitted, the commit is now empty\n")) + new = context.memctx(repo, parents=[base.node(), node.nullid], text=ctx.description(), diff --git a/tests/test-uncommit.t b/tests/test-uncommit.t --- a/tests/test-uncommit.t +++ b/tests/test-uncommit.t @@ -158,6 +158,7 @@ abort: uncommitted changes [255] $ hg uncommit files + all files uncommitted, the commit is now empty $ cat files abcde foo @@ -281,6 +282,7 @@ Phase is preserved $ hg uncommit --keep --config phases.new-commit=secret + all files uncommitted, the commit is now empty $ hg phase -r . 15: draft $ hg commit --amend -m 'update ab again' @@ -317,6 +319,7 @@ > EOS $ hg up Q -q $ hg uncommit --keep + all files uncommitted, the commit is now empty $ hg log -G -T '{desc} FILES: {files}' @ Q FILES: |