test-revert-interactive.t
432 lines
| 7.4 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 | ||||
Matt Harbison
|
r35394 | reverting folder1/g | ||
removing folder1/i | ||||
reverting folder2/h | ||||
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 | ||||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-a | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | apply change 1/6 to 'f'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -b | ||
apply 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 | ||||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-c | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | apply change 3/6 to 'folder1/g'? [Ynesfdaq?] ? | ||
Boris Feld
|
r32068 | |||
Denis Laxalde
|
r34969 | y - yes, apply this change | ||
Boris Feld
|
r32068 | n - no, skip this change | ||
e - edit this change manually | ||||
s - skip remaining changes to this file | ||||
Denis Laxalde
|
r34969 | f - apply remaining changes to this file | ||
Boris Feld
|
r32068 | d - done, skip remaining changes and files | ||
Denis Laxalde
|
r34969 | a - apply all changes to all remaining files | ||
q - quit, applying no changes | ||||
Boris Feld
|
r32068 | ? - ? (display help) | ||
Denis Laxalde
|
r34969 | apply change 3/6 to 'folder1/g'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
apply 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 | ||||
Matt Harbison
|
r35394 | reverting folder1/g | ||
reverting folder2/h | ||||
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 | ||||
Denis Laxalde
|
r34969 | @@ -3,4 +3,3 @@ | ||
skarlage
|
r29498 | 3 | ||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
apply this change to 'folder1/g'? [Ynesfdaq?] n | ||||
skarlage
|
r29498 | |||
$ 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 | ||||
Denis Laxalde
|
r34969 | @@ -3,4 +3,3 @@ | ||
skarlage
|
r29498 | 3 | ||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
apply this change to 'folder1/g'? [Ynesfdaq?] y | ||||
skarlage
|
r29498 | |||
$ 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 | ||||
Matt Harbison
|
r35394 | reverting folder1/g | ||
removing folder1/i | ||||
reverting folder2/h | ||||
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 | ||||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-a | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | apply change 1/6 to 'f'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -b | ||
apply 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 | ||||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-c | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | apply change 3/6 to 'folder1/g'? [Ynesfdaq?] y | ||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
apply 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 | |||
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 | ||||
Jun Wu
|
r33941 | |||
When a line without EOL is selected during "revert -i" (issue5651) | ||||
$ hg init $TESTTMP/revert-i-eol | ||||
$ cd $TESTTMP/revert-i-eol | ||||
$ echo 0 > a | ||||
$ hg ci -qAm 0 | ||||
$ printf 1 >> a | ||||
$ hg ci -qAm 1 | ||||
$ cat a | ||||
0 | ||||
1 (no-eol) | ||||
$ hg revert -ir'.^' <<EOF | ||||
> y | ||||
> y | ||||
> EOF | ||||
reverting a | ||||
diff --git a/a b/a | ||||
1 hunks, 1 lines changed | ||||
examine changes to 'a'? [Ynesfdaq?] y | ||||
Denis Laxalde
|
r34969 | @@ -1,2 +1,1 @@ | ||
Jun Wu
|
r33941 | 0 | ||
Denis Laxalde
|
r34969 | -1 | ||
Jun Wu
|
r33941 | \ No newline at end of file | ||
Denis Laxalde
|
r34969 | apply this change to 'a'? [Ynesfdaq?] y | ||
Jun Wu
|
r33941 | |||
$ cat a | ||||
0 | ||||
Denis Laxalde
|
r36211 | When specified pattern does not exist, we should exit early (issue5789). | ||
$ hg files | ||||
a | ||||
$ hg rev b | ||||
b: no such file in rev b40d1912accf | ||||
$ hg rev -i b | ||||
b: no such file in rev b40d1912accf | ||||
Jun Wu
|
r33941 | $ cd .. | ||