diff hgext/uncommit.py @ 36978:28ba7d111337

uncommit: leave empty commit if all files are uncommitted We had instructions for our internal users to add copy information after commit like this: hg uncommit <srcfile> <dstfile> hg cp --after <srcfile> <dstfile> hg amend That usually works, but if the rename was the only change in that commit, then the commit would get pruned. It's easy to fix the recipe: just pass the --keep option. However, it seems too subtle, so I think this is an indication that the commit should not be pruned if any patterns were given. Differential Revision: https://phab.mercurial-scm.org/D2862
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 14 Mar 2018 11:16:49 -0700
parents 3d0178bf1039
children d63c5c651183
line wrap: on
line diff
--- a/hgext/uncommit.py	Sat Mar 17 00:06:14 2018 +0900
+++ b/hgext/uncommit.py	Wed Mar 14 11:16:49 2018 -0700
@@ -166,7 +166,8 @@
 
         with repo.transaction('uncommit'):
             match = scmutil.match(old, pats, opts)
-            newid = _commitfiltered(repo, old, match, opts.get('keep'))
+            allowempty = opts.get('keep') or pats
+            newid = _commitfiltered(repo, old, match, allowempty)
             if newid is None:
                 ui.status(_("nothing to uncommit\n"))
                 return 1