test-uncommit-interactive.t
969 lines
| 17.1 KiB
| text/troff
|
Tads3Lexer
/ tests / test-uncommit-interactive.t
Taapas Agrawal
|
r41892 | ================================================ | ||
|| The test for `hg uncommit --interactive` || | ||||
================================================ | ||||
Repo Setup | ||||
============ | ||||
$ cat >> $HGRCPATH <<EOF | ||||
> [ui] | ||||
> interactive = true | ||||
> [experimental] | ||||
> evolution.createmarkers=True | ||||
> evolution.allowunstable=True | ||||
> uncommitondirtywdir = true | ||||
> [extensions] | ||||
> uncommit = | ||||
> amend = | ||||
> drawdag=$TESTDIR/drawdag.py | ||||
> EOF | ||||
$ glog() { | ||||
> hg log -G --template '{rev}:{node|short}@{branch}({separate("/", obsolete, phase)}) {desc|firstline}\n' "$@" | ||||
> } | ||||
$ hg init repo | ||||
$ cd repo | ||||
$ touch a | ||||
$ cat >> a << EOF | ||||
> 1 | ||||
> 2 | ||||
> 3 | ||||
> 4 | ||||
> 5 | ||||
> EOF | ||||
$ hg add a | ||||
$ hg ci -m "The base commit" | ||||
Make sure aborting the interactive selection does no magic | ||||
---------------------------------------------------------- | ||||
$ hg status | ||||
$ hg uncommit -i<<EOF | ||||
> q | ||||
> EOF | ||||
diff --git a/a b/a | ||||
new file mode 100644 | ||||
examine changes to 'a'? [Ynesfdaq?] q | ||||
abort: user quit | ||||
[255] | ||||
$ hg status | ||||
Make a commit with multiple hunks | ||||
--------------------------------- | ||||
$ cat > a << EOF | ||||
> -2 | ||||
> -1 | ||||
> 0 | ||||
> 1 | ||||
> 2 | ||||
> 3 | ||||
> foo | ||||
> bar | ||||
> 4 | ||||
> 5 | ||||
> babar | ||||
> EOF | ||||
$ hg diff | ||||
diff -r 7733902a8d94 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,5 +1,11 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
+babar | ||||
$ hg ci -m "another one" | ||||
Not selecting anything to uncommit | ||||
================================== | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> n | ||||
> n | ||||
> n | ||||
> EOF | ||||
diff --git a/a b/a | ||||
3 hunks, 6 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
discard change 1/3 to 'a'? [Ynesfdaq?] n | ||||
@@ -1,5 +4,7 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
discard change 2/3 to 'a'? [Ynesfdaq?] n | ||||
@@ -4,2 +9,3 @@ | ||||
4 | ||||
5 | ||||
+babar | ||||
discard change 3/3 to 'a'? [Ynesfdaq?] n | ||||
abort: nothing selected to uncommit | ||||
[255] | ||||
$ hg status | ||||
Uncommit a chunk | ||||
================ | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> y | ||||
> n | ||||
> n | ||||
> EOF | ||||
diff --git a/a b/a | ||||
3 hunks, 6 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
discard change 1/3 to 'a'? [Ynesfdaq?] y | ||||
@@ -1,5 +4,7 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
discard change 2/3 to 'a'? [Ynesfdaq?] n | ||||
@@ -4,2 +9,3 @@ | ||||
4 | ||||
5 | ||||
+babar | ||||
discard change 3/3 to 'a'? [Ynesfdaq?] n | ||||
$ hg log -G --hidden | ||||
@ changeset: 3:678a59e5ff90 | ||||
| tag: tip | ||||
| parent: 0:7733902a8d94 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: another one | ||||
| | ||||
| x changeset: 2:e9635f4beaf1 | ||||
|/ parent: 0:7733902a8d94 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| obsolete: pruned using uncommit | ||||
| summary: temporary commit for uncommiting f70fb463d5bf | ||||
| | ||||
| x changeset: 1:f70fb463d5bf | ||||
|/ user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| obsolete: rewritten using uncommit as 3:678a59e5ff90 | ||||
| summary: another one | ||||
| | ||||
o changeset: 0:7733902a8d94 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: The base commit | ||||
The unselected part should be in the diff | ||||
----------------------------------------- | ||||
$ hg diff | ||||
diff -r 678a59e5ff90 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
The commit should contain the rest of part | ||||
------------------------------------------ | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 678a59e5ff90754d5e94719bd82ad169be773c21 | ||||
# Parent 7733902a8d94c789ca81d866bea1893d79442db6 | ||||
another one | ||||
diff -r 7733902a8d94 -r 678a59e5ff90 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,5 +1,8 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
+babar | ||||
Uncommiting on dirty working directory | ||||
====================================== | ||||
$ hg status | ||||
M a | ||||
$ hg diff | ||||
diff -r 678a59e5ff90 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> n | ||||
> y | ||||
> EOF | ||||
diff --git a/a b/a | ||||
2 hunks, 3 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
@@ -1,5 +1,7 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
discard change 1/2 to 'a'? [Ynesfdaq?] n | ||||
@@ -4,2 +6,3 @@ | ||||
4 | ||||
5 | ||||
+babar | ||||
discard change 2/2 to 'a'? [Ynesfdaq?] y | ||||
patching file a | ||||
Hunk #1 succeeded at 2 with fuzz 1 (offset 0 lines). | ||||
$ hg diff | ||||
diff -r 46e35360be47 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
@@ -5,3 +8,4 @@ | ||||
bar | ||||
4 | ||||
5 | ||||
+babar | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 46e35360be473bf761bedf3d05de4a68ffd9d9f8 | ||||
# Parent 7733902a8d94c789ca81d866bea1893d79442db6 | ||||
another one | ||||
diff -r 7733902a8d94 -r 46e35360be47 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,5 +1,7 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
Checking the obsolescence history | ||||
$ hg log -G --hidden | ||||
@ changeset: 5:46e35360be47 | ||||
| tag: tip | ||||
| parent: 0:7733902a8d94 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: another one | ||||
| | ||||
| x changeset: 4:7ca9935a62f1 | ||||
|/ parent: 0:7733902a8d94 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| obsolete: pruned using uncommit | ||||
| summary: temporary commit for uncommiting 678a59e5ff90 | ||||
| | ||||
| x changeset: 3:678a59e5ff90 | ||||
|/ parent: 0:7733902a8d94 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| obsolete: rewritten using uncommit as 5:46e35360be47 | ||||
| summary: another one | ||||
| | ||||
| x changeset: 2:e9635f4beaf1 | ||||
|/ parent: 0:7733902a8d94 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| obsolete: pruned using uncommit | ||||
| summary: temporary commit for uncommiting f70fb463d5bf | ||||
| | ||||
| x changeset: 1:f70fb463d5bf | ||||
|/ user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| obsolete: rewritten using uncommit as 3:678a59e5ff90 | ||||
| summary: another one | ||||
| | ||||
o changeset: 0:7733902a8d94 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: The base commit | ||||
Push the changes back to the commit and more commits for more testing | ||||
$ hg amend | ||||
$ glog | ||||
@ 6:905eb2a23ea2@default(draft) another one | ||||
| | ||||
o 0:7733902a8d94@default(draft) The base commit | ||||
$ touch foo | ||||
$ echo "hey" >> foo | ||||
$ hg ci -Am "Added foo" | ||||
adding foo | ||||
Testing uncommiting a whole changeset and also for a file addition | ||||
================================================================== | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
diff --git a/foo b/foo | ||||
new file mode 100644 | ||||
examine changes to 'foo'? [Ynesfdaq?] y | ||||
@@ -0,0 +1,1 @@ | ||||
+hey | ||||
discard this change to 'foo'? [Ynesfdaq?] y | ||||
$ hg status | ||||
A foo | ||||
$ hg diff | ||||
diff -r 857367499298 foo | ||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/foo Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -0,0 +1,1 @@ | ||||
+hey | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 857367499298e999b5841bb01df65f73088b5d3b | ||||
# Parent 905eb2a23ea2d92073419d0e19165b90d36ea223 | ||||
Added foo | ||||
$ hg amend | ||||
Testing to uncommit removed files completely | ||||
============================================ | ||||
$ hg rm a | ||||
$ hg ci -m "Removed a" | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 219cfe20964e93f8bb9bd82ceaa54d3b776046db | ||||
# Parent 42cc15efbec26c14d96d805dee2766ba91d1fd31 | ||||
Removed a | ||||
diff -r 42cc15efbec2 -r 219cfe20964e a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,11 +0,0 @@ | ||||
--2 | ||||
--1 | ||||
-0 | ||||
-1 | ||||
-2 | ||||
-3 | ||||
-foo | ||||
-bar | ||||
-4 | ||||
-5 | ||||
-babar | ||||
Not examining the file | ||||
---------------------- | ||||
$ hg uncommit -i<<EOF | ||||
> n | ||||
> EOF | ||||
diff --git a/a b/a | ||||
deleted file mode 100644 | ||||
examine changes to 'a'? [Ynesfdaq?] n | ||||
abort: nothing selected to uncommit | ||||
[255] | ||||
Examining the file | ||||
------------------ | ||||
XXX: there is a bug in interactive selection as it is not letting to examine the | ||||
file. Tried with curses too. In the curses UI, if you just unselect the hunks | ||||
and the not file mod thing at the top, it will show the same "nothing unselected | ||||
to uncommit" message which is a bug in interactive selection. | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> EOF | ||||
diff --git a/a b/a | ||||
deleted file mode 100644 | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
$ hg diff | ||||
diff -r 737487f1e5f8 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,11 +0,0 @@ | ||||
--2 | ||||
--1 | ||||
-0 | ||||
-1 | ||||
-2 | ||||
-3 | ||||
-foo | ||||
-bar | ||||
-4 | ||||
-5 | ||||
-babar | ||||
$ hg status | ||||
R a | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 737487f1e5f853e55decb73ea31522c63e7f5980 | ||||
# Parent 42cc15efbec26c14d96d805dee2766ba91d1fd31 | ||||
Removed a | ||||
$ hg prune . | ||||
hg: unknown command 'prune' | ||||
(use 'hg help' for a list of commands) | ||||
[255] | ||||
$ hg revert --all | ||||
undeleting a | ||||
$ glog | ||||
@ 13:737487f1e5f8@default(draft) Removed a | ||||
| | ||||
o 10:42cc15efbec2@default(draft) Added foo | ||||
| | ||||
o 6:905eb2a23ea2@default(draft) another one | ||||
| | ||||
o 0:7733902a8d94@default(draft) The base commit | ||||
Testing when a new file is added in the last commit | ||||
=================================================== | ||||
$ echo "foo" >> foo | ||||
$ touch x | ||||
$ echo "abcd" >> x | ||||
$ hg add x | ||||
$ hg ci -m "Added x" | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> n | ||||
> EOF | ||||
diff --git a/foo b/foo | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'foo'? [Ynesfdaq?] y | ||||
@@ -1,1 +1,2 @@ | ||||
hey | ||||
+foo | ||||
discard change 1/2 to 'foo'? [Ynesfdaq?] y | ||||
diff --git a/x b/x | ||||
new file mode 100644 | ||||
examine changes to 'x'? [Ynesfdaq?] y | ||||
@@ -0,0 +1,1 @@ | ||||
+abcd | ||||
discard change 2/2 to 'x'? [Ynesfdaq?] n | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID f7b39cf595081f8e63fe1119953cc7f669663720 | ||||
# Parent 737487f1e5f853e55decb73ea31522c63e7f5980 | ||||
Added x | ||||
diff -r 737487f1e5f8 -r f7b39cf59508 x | ||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/x Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -0,0 +1,1 @@ | ||||
+abcd | ||||
$ hg diff | ||||
diff -r f7b39cf59508 foo | ||||
--- a/foo Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/foo Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,1 +1,2 @@ | ||||
hey | ||||
+foo | ||||
$ hg status | ||||
M foo | ||||
$ hg revert --all | ||||
reverting foo | ||||
Testing between the stack and with dirty working copy | ||||
===================================================== | ||||
$ glog | ||||
@ 16:f7b39cf59508@default(draft) Added x | ||||
| | ||||
o 13:737487f1e5f8@default(draft) Removed a | ||||
| | ||||
o 10:42cc15efbec2@default(draft) Added foo | ||||
| | ||||
o 6:905eb2a23ea2@default(draft) another one | ||||
| | ||||
o 0:7733902a8d94@default(draft) The base commit | ||||
$ hg up 905eb2a23ea2 | ||||
0 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
$ touch bar | ||||
$ echo "foo" >> bar | ||||
$ hg add bar | ||||
$ hg status | ||||
A bar | ||||
? foo.orig | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 905eb2a23ea2d92073419d0e19165b90d36ea223 | ||||
# Parent 7733902a8d94c789ca81d866bea1893d79442db6 | ||||
another one | ||||
diff -r 7733902a8d94 -r 905eb2a23ea2 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,5 +1,11 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
+babar | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> n | ||||
> n | ||||
> y | ||||
> EOF | ||||
diff --git a/a b/a | ||||
3 hunks, 6 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
discard change 1/3 to 'a'? [Ynesfdaq?] n | ||||
@@ -1,5 +4,7 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
discard change 2/3 to 'a'? [Ynesfdaq?] n | ||||
@@ -4,2 +9,3 @@ | ||||
4 | ||||
5 | ||||
+babar | ||||
discard change 3/3 to 'a'? [Ynesfdaq?] y | ||||
patching file a | ||||
Hunk #1 succeeded at 1 with fuzz 1 (offset -1 lines). | ||||
3 new orphan changesets | ||||
$ hg diff | ||||
diff -r 676366511f95 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -8,3 +8,4 @@ | ||||
bar | ||||
4 | ||||
5 | ||||
+babar | ||||
diff -r 676366511f95 bar | ||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/bar Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -0,0 +1,1 @@ | ||||
+foo | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 676366511f95ca4122413dcf79b45eaab61fb387 | ||||
# Parent 7733902a8d94c789ca81d866bea1893d79442db6 | ||||
another one | ||||
diff -r 7733902a8d94 -r 676366511f95 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,5 +1,10 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
$ hg status | ||||
M a | ||||
A bar | ||||
? foo.orig | ||||
More uncommit on the same dirty working copy | ||||
============================================= | ||||
$ hg uncommit -i<<EOF | ||||
> y | ||||
> y | ||||
> n | ||||
> EOF | ||||
diff --git a/a b/a | ||||
2 hunks, 5 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
discard change 1/2 to 'a'? [Ynesfdaq?] y | ||||
@@ -1,5 +4,7 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
discard change 2/2 to 'a'? [Ynesfdaq?] n | ||||
$ hg exp | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 62d907d0c4fa13b4b8bfeed05f13751035daf963 | ||||
# Parent 7733902a8d94c789ca81d866bea1893d79442db6 | ||||
another one | ||||
diff -r 7733902a8d94 -r 62d907d0c4fa a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,5 +1,7 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
+foo | ||||
+bar | ||||
4 | ||||
5 | ||||
$ hg diff | ||||
diff -r 62d907d0c4fa a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,3 +1,6 @@ | ||||
+-2 | ||||
+-1 | ||||
+0 | ||||
1 | ||||
2 | ||||
3 | ||||
@@ -5,3 +8,4 @@ | ||||
bar | ||||
4 | ||||
5 | ||||
+babar | ||||
diff -r 62d907d0c4fa bar | ||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/bar Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -0,0 +1,1 @@ | ||||
+foo | ||||
$ hg status | ||||
M a | ||||
A bar | ||||
? foo.orig | ||||
Interactive uncommit with a pattern | ||||
----------------------------------- | ||||
(more setup) | ||||
$ hg ci -m 'roaming changes' | ||||
$ cat > b << EOF | ||||
> a | ||||
> b | ||||
> c | ||||
> d | ||||
> e | ||||
> f | ||||
> h | ||||
> EOF | ||||
$ hg add b | ||||
$ hg ci -m 'add b' | ||||
$ echo 'celeste' >> a | ||||
$ echo 'i' >> b | ||||
$ hg ci -m 'some more changes' | ||||
$ hg export | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID be5c67225e80b050867862bbd9f4755c4e9207c5 | ||||
# Parent c280a907fddcef2ffe9fadcc2d87f29998e22b2f | ||||
some more changes | ||||
diff -r c280a907fddc -r be5c67225e80 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -9,3 +9,4 @@ | ||||
4 | ||||
5 | ||||
babar | ||||
+celeste | ||||
diff -r c280a907fddc -r be5c67225e80 b | ||||
--- a/b Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/b Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -5,3 +5,4 @@ | ||||
e | ||||
f | ||||
h | ||||
+i | ||||
$ hg uncommit -i a << DONE | ||||
> y | ||||
> y | ||||
> DONE | ||||
diff --git a/a b/a | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
@@ -9,3 +9,4 @@ | ||||
4 | ||||
5 | ||||
babar | ||||
+celeste | ||||
discard this change to 'a'? [Ynesfdaq?] y | ||||
$ hg status | ||||
M a | ||||
? foo.orig | ||||
$ hg diff | ||||
diff -r c701d7c8d18b a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -9,3 +9,4 @@ | ||||
4 | ||||
5 | ||||
babar | ||||
+celeste | ||||
$ hg export | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID c701d7c8d18be55a92688f4458c26bd74fb1f525 | ||||
# Parent c280a907fddcef2ffe9fadcc2d87f29998e22b2f | ||||
some more changes | ||||
diff -r c280a907fddc -r c701d7c8d18b b | ||||
--- a/b Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/b Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -5,3 +5,4 @@ | ||||
e | ||||
f | ||||
h | ||||
+i | ||||
(reset) | ||||
$ cat << EOF > a | ||||
> -3 | ||||
> -2 | ||||
> -1 | ||||
> 0 | ||||
> 1 | ||||
> 2 | ||||
> 3 | ||||
> foo | ||||
> bar | ||||
> 4 | ||||
> 5 | ||||
> babar | ||||
> celeste | ||||
> EOF | ||||
$ hg amend | ||||
Same but do not select some change in 'a' | ||||
$ hg uncommit -i a << DONE | ||||
> y | ||||
> y | ||||
> n | ||||
> DONE | ||||
diff --git a/a b/a | ||||
2 hunks, 2 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
@@ -1,3 +1,4 @@ | ||||
+-3 | ||||
-2 | ||||
-1 | ||||
0 | ||||
discard change 1/2 to 'a'? [Ynesfdaq?] y | ||||
@@ -9,3 +10,4 @@ | ||||
4 | ||||
5 | ||||
babar | ||||
+celeste | ||||
discard change 2/2 to 'a'? [Ynesfdaq?] n | ||||
$ hg status | ||||
M a | ||||
? foo.orig | ||||
$ hg diff | ||||
diff -r 28d5de12b225 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,3 +1,4 @@ | ||||
+-3 | ||||
-2 | ||||
-1 | ||||
0 | ||||
$ hg export | ||||
# HG changeset patch | ||||
# User test | ||||
# Date 0 0 | ||||
# Thu Jan 01 00:00:00 1970 +0000 | ||||
# Node ID 28d5de12b225d1e0951110cced8d8994227be026 | ||||
# Parent c280a907fddcef2ffe9fadcc2d87f29998e22b2f | ||||
some more changes | ||||
diff -r c280a907fddc -r 28d5de12b225 a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -9,3 +9,4 @@ | ||||
4 | ||||
5 | ||||
babar | ||||
+celeste | ||||
diff -r c280a907fddc -r 28d5de12b225 b | ||||
--- a/b Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/b Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -5,3 +5,4 @@ | ||||
e | ||||
f | ||||
h | ||||
+i | ||||
$ cat b | ||||
a | ||||
b | ||||
c | ||||
d | ||||
e | ||||
f | ||||
h | ||||
i | ||||