test-revert-interactive.t
393 lines
| 6.1 KiB
| text/troff
|
Tads3Lexer
/ tests / test-revert-interactive.t
Laurent Charignon
|
r24359 | Revert interactive tests | ||
1 add and commit file f | ||||
2 add commit file folder1/g | ||||
3 add and commit file folder2/h | ||||
4 add and commit file folder1/i | ||||
5 commit change to file f | ||||
6 commit changes to files folder1/g folder2/h | ||||
7 commit changes to files folder1/g folder2/h | ||||
8 revert interactive to commit id 2 (line 3 above), check that folder1/i is removed and | ||||
9 make workdir match 7 | ||||
10 run the same test than 8 from within folder1 and check same expectations | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [ui] | ||||
> interactive = true | ||||
> [extensions] | ||||
> record = | ||||
> EOF | ||||
Yuya Nishihara
|
r24389 | $ mkdir -p a/folder1 a/folder2 | ||
Laurent Charignon
|
r24359 | $ cd a | ||
$ hg init | ||||
Matt Harbison
|
r24434 | >>> open('f', 'wb').write("1\n2\n3\n4\n5\n") | ||
$ hg add f ; hg commit -m "adding f" | ||||
Matt Harbison
|
r24361 | $ cat f > folder1/g ; hg add folder1/g ; hg commit -m "adding folder1/g" | ||
$ cat f > folder2/h ; hg add folder2/h ; hg commit -m "adding folder2/h" | ||||
$ cat f > folder1/i ; hg add folder1/i ; hg commit -m "adding folder1/i" | ||||
Matt Harbison
|
r24434 | >>> open('f', 'wb').write("a\n1\n2\n3\n4\n5\nb\n") | ||
$ hg commit -m "modifying f" | ||||
>>> open('folder1/g', 'wb').write("c\n1\n2\n3\n4\n5\nd\n") | ||||
$ hg commit -m "modifying folder1/g" | ||||
>>> open('folder2/h', 'wb').write("e\n1\n2\n3\n4\n5\nf\n") | ||||
$ hg commit -m "modifying folder2/h" | ||||
Laurent Charignon
|
r24359 | $ hg tip | ||
changeset: 6:59dd6e4ab63a | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: modifying folder2/h | ||||
$ hg revert -i -r 2 --all -- << EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> n | ||||
> n | ||||
> EOF | ||||
reverting f | ||||
reverting folder1/g (glob) | ||||
removing folder1/i (glob) | ||||
reverting folder2/h (glob) | ||||
Laurent Charignon
|
r25258 | diff --git a/f b/f | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'f'? [Ynesfdaq?] y | ||||
@@ -1,6 +1,5 @@ | ||||
-a | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
record change 1/6 to 'f'? [Ynesfdaq?] y | ||||
@@ -2,6 +1,5 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
-b | ||||
record change 2/6 to 'f'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r25258 | diff --git a/folder1/g b/folder1/g | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -1,6 +1,5 @@ | ||||
-c | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
record change 3/6 to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -2,6 +1,5 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
-d | ||||
record change 4/6 to 'folder1/g'? [Ynesfdaq?] n | ||||
Laurent Charignon
|
r25258 | diff --git a/folder2/h b/folder2/h | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'folder2/h'? [Ynesfdaq?] n | ||||
$ cat f | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
$ cat folder1/g | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
d | ||||
$ cat folder2/h | ||||
e | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
f | ||||
Pierre-Yves David
|
r24698 | |||
Test that --interactive lift the need for --all | ||||
$ echo q | hg revert -i -r 2 | ||||
reverting folder1/g (glob) | ||||
reverting folder2/h (glob) | ||||
Laurent Charignon
|
r25258 | diff --git a/folder1/g b/folder1/g | ||
Pierre-Yves David
|
r24698 | 1 hunks, 1 lines changed | ||
examine changes to 'folder1/g'? [Ynesfdaq?] q | ||||
abort: user quit | ||||
[255] | ||||
$ rm folder1/g.orig | ||||
Laurent Charignon
|
r24359 | $ hg update -C 6 | ||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg revert -i -r 2 --all -- << EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> n | ||||
> n | ||||
> EOF | ||||
reverting f | ||||
reverting folder1/g (glob) | ||||
removing folder1/i (glob) | ||||
reverting folder2/h (glob) | ||||
Laurent Charignon
|
r25258 | diff --git a/f b/f | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'f'? [Ynesfdaq?] y | ||||
@@ -1,6 +1,5 @@ | ||||
-a | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
record change 1/6 to 'f'? [Ynesfdaq?] y | ||||
@@ -2,6 +1,5 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
-b | ||||
record change 2/6 to 'f'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r25258 | diff --git a/folder1/g b/folder1/g | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -1,6 +1,5 @@ | ||||
-c | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
record change 3/6 to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -2,6 +1,5 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
-d | ||||
record change 4/6 to 'folder1/g'? [Ynesfdaq?] n | ||||
Laurent Charignon
|
r25258 | diff --git a/folder2/h b/folder2/h | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'folder2/h'? [Ynesfdaq?] n | ||||
$ cat f | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
$ cat folder1/g | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
d | ||||
$ cat folder2/h | ||||
e | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
f | ||||
Laurent Charignon
|
r24475 | $ hg st | ||
M f | ||||
M folder1/g | ||||
R folder1/i | ||||
$ hg revert --interactive f << EOF | ||||
> y | ||||
> y | ||||
> n | ||||
> n | ||||
> EOF | ||||
Laurent Charignon
|
r25258 | diff --git a/f b/f | ||
Laurent Charignon
|
r24475 | 2 hunks, 2 lines changed | ||
examine changes to 'f'? [Ynesfdaq?] y | ||||
@@ -1,5 +1,6 @@ | ||||
+a | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
record change 1/2 to 'f'? [Ynesfdaq?] y | ||||
@@ -1,5 +2,6 @@ | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
+b | ||||
record change 2/2 to 'f'? [Ynesfdaq?] n | ||||
$ hg st | ||||
M f | ||||
M folder1/g | ||||
R folder1/i | ||||
? f.orig | ||||
$ cat f | ||||
a | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
$ cat f.orig | ||||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Laurent Charignon
|
r25259 | $ rm f.orig | ||
$ hg update -C . | ||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
Check editing files newly added by a revert | ||||
1) Create a dummy editor changing 1 to 42 | ||||
$ cat > $TESTTMP/editor.sh << '__EOF__' | ||||
> cat "$1" | sed "s/1/42/g" > tt | ||||
> mv tt "$1" | ||||
> __EOF__ | ||||
2) Remove f | ||||
$ hg rm f | ||||
$ hg commit -m "remove f" | ||||
3) Do another commit on top | ||||
$ touch k; hg add k | ||||
$ hg commit -m "add k" | ||||
$ hg st | ||||
4) Use interactive revert to recover f and change it on the fly | ||||
Laurent Charignon
|
r25350 | $ HGEDITOR="\"sh\" \"${TESTTMP}/editor.sh\"" hg revert -i -r ".^^" <<EOF | ||
Laurent Charignon
|
r25259 | > y | ||
> e | ||||
> EOF | ||||
adding f | ||||
removing k | ||||
diff --git a/f b/f | ||||
new file mode 100644 | ||||
examine changes to 'f'? [Ynesfdaq?] y | ||||
@@ -0,0 +1,7 @@ | ||||
+a | ||||
+1 | ||||
+2 | ||||
+3 | ||||
+4 | ||||
+5 | ||||
+b | ||||
record this change to 'f'? [Ynesfdaq?] e | ||||
$ cat f | ||||
a | ||||
42 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
b | ||||
Laurent Charignon
|
r25424 | |||
Check the experimental config to invert the selection: | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [experimental] | ||||
> revertalternateinteractivemode=True | ||||
> EOF | ||||
$ hg up -C . | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ printf 'firstline\nc\n1\n2\n3\n 3\n5\nd\nlastline\n' > folder1/g | ||||
$ hg diff --nodates | ||||
diff -r 5a858e056dc0 folder1/g | ||||
--- a/folder1/g | ||||
+++ b/folder1/g | ||||
@@ -1,7 +1,9 @@ | ||||
+firstline | ||||
c | ||||
1 | ||||
2 | ||||
3 | ||||
-4 | ||||
+ 3 | ||||
5 | ||||
d | ||||
+lastline | ||||
$ hg revert -i <<EOF | ||||
> y | ||||
> y | ||||
> y | ||||
> n | ||||
> EOF | ||||
reverting folder1/g (glob) | ||||
diff --git a/folder1/g b/folder1/g | ||||
3 hunks, 3 lines changed | ||||
examine changes to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -1,4 +1,5 @@ | ||||
+firstline | ||||
c | ||||
1 | ||||
2 | ||||
3 | ||||
record change 1/3 to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -1,7 +2,7 @@ | ||||
c | ||||
1 | ||||
2 | ||||
3 | ||||
-4 | ||||
+ 3 | ||||
5 | ||||
d | ||||
record change 2/3 to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -6,2 +7,3 @@ | ||||
5 | ||||
d | ||||
+lastline | ||||
record change 3/3 to 'folder1/g'? [Ynesfdaq?] n | ||||
$ hg diff --nodates | ||||
diff -r 5a858e056dc0 folder1/g | ||||
--- a/folder1/g | ||||
+++ b/folder1/g | ||||
@@ -5,3 +5,4 @@ | ||||
4 | ||||
5 | ||||
d | ||||
+lastline | ||||