test-revert-interactive.t
462 lines
| 7.9 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 = | ||||
liscju
|
r27985 | > purge = | ||
Laurent Charignon
|
r24359 | > 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 | ||||
Boris Feld
|
r32068 | > ? | ||
Denis Laxalde
|
r30532 | > y | ||
Laurent Charignon
|
r24359 | > n | ||
> n | ||||
> EOF | ||||
reverting f | ||||
reverting folder1/g (glob) | ||||
removing folder1/i (glob) | ||||
reverting folder2/h (glob) | ||||
Denis Laxalde
|
r30532 | remove added file folder1/i (Yn)? y | ||
Laurent Charignon
|
r25258 | diff --git a/f b/f | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'f'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r25657 | @@ -1,5 +1,6 @@ | ||
+a | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r29283 | revert change 1/6 to 'f'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25657 | @@ -1,5 +2,6 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Laurent Charignon
|
r25657 | +b | ||
Denis Laxalde
|
r29283 | revert change 2/6 to 'f'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
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 | ||||
Laurent Charignon
|
r25657 | @@ -1,5 +1,6 @@ | ||
+c | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Boris Feld
|
r32068 | revert change 3/6 to 'folder1/g'? [Ynesfdaq?] ? | ||
y - yes, revert this change | ||||
n - no, skip this change | ||||
e - edit this change manually | ||||
s - skip remaining changes to this file | ||||
f - revert remaining changes to this file | ||||
d - done, skip remaining changes and files | ||||
a - revert all changes to all remaining files | ||||
q - quit, reverting no changes | ||||
? - ? (display help) | ||||
Denis Laxalde
|
r29283 | revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25657 | @@ -1,5 +2,6 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Laurent Charignon
|
r25657 | +d | ||
Denis Laxalde
|
r29283 | revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n | ||
Laurent Charignon
|
r24359 | |||
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] | ||||
skarlage
|
r29498 | $ ls folder1/ | ||
g | ||||
Mads Kiilerich
|
r30332 | Test that a noop revert doesn't do an unnecessary backup | ||
skarlage
|
r29498 | $ (echo y; echo n) | hg revert -i -r 2 folder1/g | ||
diff --git a/folder1/g b/folder1/g | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -3,3 +3,4 @@ | ||||
3 | ||||
4 | ||||
5 | ||||
+d | ||||
revert this change to 'folder1/g'? [Ynesfdaq?] n | ||||
$ ls folder1/ | ||||
g | ||||
Test --no-backup | ||||
$ (echo y; echo y) | hg revert -i -C -r 2 folder1/g | ||||
diff --git a/folder1/g b/folder1/g | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'folder1/g'? [Ynesfdaq?] y | ||||
@@ -3,3 +3,4 @@ | ||||
3 | ||||
4 | ||||
5 | ||||
+d | ||||
revert this change to 'folder1/g'? [Ynesfdaq?] y | ||||
$ ls folder1/ | ||||
g | ||||
>>> open('folder1/g', 'wb').write("1\n2\n3\n4\n5\nd\n") | ||||
Pierre-Yves David
|
r24698 | |||
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 | ||||
Denis Laxalde
|
r30532 | > n | ||
Laurent Charignon
|
r24359 | > y | ||
> y | ||||
> y | ||||
> y | ||||
> y | ||||
> n | ||||
> n | ||||
> EOF | ||||
reverting f | ||||
reverting folder1/g (glob) | ||||
removing folder1/i (glob) | ||||
reverting folder2/h (glob) | ||||
Denis Laxalde
|
r30532 | remove added file folder1/i (Yn)? n | ||
Laurent Charignon
|
r25258 | diff --git a/f b/f | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
examine changes to 'f'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r25657 | @@ -1,5 +1,6 @@ | ||
+a | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r29283 | revert change 1/6 to 'f'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25657 | @@ -1,5 +2,6 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Laurent Charignon
|
r25657 | +b | ||
Denis Laxalde
|
r29283 | revert change 2/6 to 'f'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
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 | ||||
Laurent Charignon
|
r25657 | @@ -1,5 +1,6 @@ | ||
+c | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r29283 | revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25657 | @@ -1,5 +2,6 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Laurent Charignon
|
r25657 | +d | ||
Denis Laxalde
|
r29283 | revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n | ||
Laurent Charignon
|
r24359 | |||
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 | ||||
$ hg revert --interactive f << EOF | ||||
> y | ||||
Boris Feld
|
r32068 | > ? | ||
Laurent Charignon
|
r24475 | > 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 | ||||
Laurent Charignon
|
r25657 | @@ -1,6 +1,5 @@ | ||
-a | ||||
Laurent Charignon
|
r24475 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Boris Feld
|
r32068 | discard change 1/2 to 'f'? [Ynesfdaq?] ? | ||
y - yes, discard this change | ||||
n - no, skip this change | ||||
e - edit this change manually | ||||
s - skip remaining changes to this file | ||||
f - discard remaining changes to this file | ||||
d - done, skip remaining changes and files | ||||
a - discard all changes to all remaining files | ||||
q - quit, discarding no changes | ||||
? - ? (display help) | ||||
Denis Laxalde
|
r29283 | discard change 1/2 to 'f'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24475 | |||
Laurent Charignon
|
r25657 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24475 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Laurent Charignon
|
r25657 | -b | ||
Denis Laxalde
|
r29283 | discard change 2/2 to 'f'? [Ynesfdaq?] n | ||
Laurent Charignon
|
r24475 | |||
$ hg st | ||||
M f | ||||
M folder1/g | ||||
? 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 . | ||||
Denis Laxalde
|
r30532 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Laurent Charignon
|
r25259 | |||
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__ | ||||
Laurent Charignon
|
r25656 | 2) Add k | ||
$ printf "1\n" > k | ||||
$ hg add k | ||||
$ hg commit -m "add k" | ||||
Laurent Charignon
|
r25259 | |||
Laurent Charignon
|
r25656 | 3) Use interactive revert with editing (replacing +1 with +42): | ||
$ printf "0\n2\n" > k | ||||
$ HGEDITOR="\"sh\" \"${TESTTMP}/editor.sh\"" hg revert -i <<EOF | ||||
Laurent Charignon
|
r25259 | > y | ||
> e | ||||
> EOF | ||||
Laurent Charignon
|
r25656 | reverting k | ||
diff --git a/k b/k | ||||
1 hunks, 2 lines changed | ||||
examine changes to 'k'? [Ynesfdaq?] y | ||||
Laurent Charignon
|
r25259 | |||
Laurent Charignon
|
r25657 | @@ -1,1 +1,2 @@ | ||
-1 | ||||
+0 | ||||
+2 | ||||
Denis Laxalde
|
r29283 | discard this change to 'k'? [Ynesfdaq?] e | ||
Laurent Charignon
|
r25259 | |||
Laurent Charignon
|
r25656 | $ cat k | ||
Laurent Charignon
|
r25259 | 42 | ||
Laurent Charignon
|
r25424 | |||
Check the experimental config to invert the selection: | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [experimental] | ||||
Laurent Charignon
|
r25657 | > revertalternateinteractivemode=False | ||
Laurent Charignon
|
r25424 | > 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 | ||||
Laurent Charignon
|
r25656 | diff -r a3d963a027aa folder1/g | ||
Laurent Charignon
|
r25424 | --- 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 | ||||
Denis Laxalde
|
r31196 | @@ -1,4 +1,5 @@ | ||
+firstline | ||||
Laurent Charignon
|
r25424 | c | ||
1 | ||||
2 | ||||
3 | ||||
Denis Laxalde
|
r29283 | discard change 1/3 to 'folder1/g'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r25424 | |||
Denis Laxalde
|
r31196 | @@ -1,7 +2,7 @@ | ||
Laurent Charignon
|
r25424 | c | ||
1 | ||||
2 | ||||
3 | ||||
Denis Laxalde
|
r31196 | -4 | ||
+ 3 | ||||
Laurent Charignon
|
r25424 | 5 | ||
d | ||||
Denis Laxalde
|
r29283 | discard change 2/3 to 'folder1/g'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r25424 | |||
Denis Laxalde
|
r31196 | @@ -6,2 +7,3 @@ | ||
Laurent Charignon
|
r25424 | 5 | ||
d | ||||
Denis Laxalde
|
r31196 | +lastline | ||
Denis Laxalde
|
r29283 | discard change 3/3 to 'folder1/g'? [Ynesfdaq?] n | ||
Laurent Charignon
|
r25424 | |||
$ hg diff --nodates | ||||
Laurent Charignon
|
r25656 | diff -r a3d963a027aa folder1/g | ||
Laurent Charignon
|
r25424 | --- a/folder1/g | ||
+++ b/folder1/g | ||||
@@ -5,3 +5,4 @@ | ||||
4 | ||||
5 | ||||
d | ||||
+lastline | ||||
liscju
|
r27985 | |||
$ hg update -C . | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg purge | ||||
$ touch newfile | ||||
$ hg add newfile | ||||
$ hg status | ||||
A newfile | ||||
$ hg revert -i <<EOF | ||||
> n | ||||
> EOF | ||||
forgetting newfile | ||||
Denis Laxalde
|
r30531 | forget added file newfile (Yn)? n | ||
liscju
|
r27985 | $ hg status | ||
A newfile | ||||
$ hg revert -i <<EOF | ||||
> y | ||||
> EOF | ||||
forgetting newfile | ||||
Denis Laxalde
|
r30531 | forget added file newfile (Yn)? y | ||
liscju
|
r27985 | $ hg status | ||
? newfile | ||||