diff tests/test-uncommit.t @ 41750:1040d54eb7eb

uncommit: add config option to keep commit by default We have a Google-internal extension that keeps track of "review units" (like Phabricator reviews, or Gerrit's Change-Id). This information is stored outside of the commit. It is updated with rewrites. Every now and then we get reports from users who are confused because `hg uncommit` lost track of their review. Keeping the empty commit by default would reduce this confusion. It may also cause confusion about the empty commit. This patch adds a config option that lets us easily test both behaviors on our users. Differential Revision: https://phab.mercurial-scm.org/D5970
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 15 Feb 2019 10:39:45 -0800
parents 83d294c71f1e
children bf22e370ae9a
line wrap: on
line diff
--- a/tests/test-uncommit.t	Thu Feb 14 15:17:54 2019 -0800
+++ b/tests/test-uncommit.t	Fri Feb 15 10:39:45 2019 -0800
@@ -307,7 +307,7 @@
   $ hg phase -r ".^"
   12: public
 
-Uncommit leaving an empty changeset
+Uncommit with --keep or experimental.uncommit.keep leaves an empty changeset
 
   $ cd $TESTTMP
   $ hg init repo1
@@ -327,9 +327,31 @@
   |/
   o  P FILES: P
   
+  $ cat >> .hg/hgrc <<EOF
+  > [experimental]
+  > uncommit.keep=True
+  > EOF
+  $ hg ci --amend
+  $ hg uncommit
+  note: keeping empty commit
+  $ hg log -G -T '{desc} FILES: {files}'
+  @  Q FILES:
+  |
+  | x  Q FILES: Q
+  |/
+  o  P FILES: P
+  
   $ hg status
   A Q
-
+  $ hg ci --amend
+  $ hg uncommit --no-keep
+  $ hg log -G -T '{desc} FILES: {files}'
+  x  Q FILES: Q
+  |
+  @  P FILES: P
+  
+  $ hg status
+  A Q
   $ cd ..
   $ rm -rf repo1