changeset 41745:83d294c71f1e

uncommit: inform user if the commit is empty after uncommit Differential Revision: https://phab.mercurial-scm.org/D5969
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 15 Feb 2019 10:49:12 -0800
parents 0ae89ab3f025
children 2dcb637aaf10
files hgext/uncommit.py tests/test-uncommit.t
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/uncommit.py	Thu Feb 14 15:35:47 2019 +0100
+++ b/hgext/uncommit.py	Fri Feb 15 10:49:12 2019 -0800
@@ -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(_("note: keeping empty commit\n"))
+
     new = context.memctx(repo,
                          parents=[base.node(), node.nullid],
                          text=ctx.description(),
--- a/tests/test-uncommit.t	Thu Feb 14 15:35:47 2019 +0100
+++ b/tests/test-uncommit.t	Fri Feb 15 10:49:12 2019 -0800
@@ -158,6 +158,7 @@
   abort: uncommitted changes
   [255]
   $ hg uncommit files
+  note: keeping empty commit
   $ cat files
   abcde
   foo
@@ -281,6 +282,7 @@
 Phase is preserved
 
   $ hg uncommit --keep --config phases.new-commit=secret
+  note: keeping empty commit
   $ hg phase -r .
   15: draft
   $ hg commit --amend -m 'update ab again'
@@ -317,6 +319,7 @@
   > EOS
   $ hg up Q -q
   $ hg uncommit --keep
+  note: keeping empty commit
   $ hg log -G -T '{desc} FILES: {files}'
   @  Q FILES:
   |