test-revert-interactive.t
537 lines
| 9.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 = | ||||
liscju
|
r27985 | > purge = | ||
Laurent Charignon
|
r24359 | > EOF | ||
Yuya Nishihara
|
r24389 | $ mkdir -p a/folder1 a/folder2 | ||
Laurent Charignon
|
r24359 | $ cd a | ||
$ hg init | ||||
Pulkit Goyal
|
r38097 | >>> open('f', 'wb').write(b"1\n2\n3\n4\n5\n") and None | ||
Matt Harbison
|
r24434 | $ 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" | ||||
Pulkit Goyal
|
r38097 | >>> open('f', 'wb').write(b"a\n1\n2\n3\n4\n5\nb\n") and None | ||
Matt Harbison
|
r24434 | $ hg commit -m "modifying f" | ||
Pulkit Goyal
|
r38097 | >>> open('folder1/g', 'wb').write(b"c\n1\n2\n3\n4\n5\nd\n") and None | ||
Matt Harbison
|
r24434 | $ hg commit -m "modifying folder1/g" | ||
Pulkit Goyal
|
r38097 | >>> open('folder2/h', 'wb').write(b"e\n1\n2\n3\n4\n5\nf\n") and None | ||
Matt Harbison
|
r24434 | $ 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 | ||||
Sushil khanchi
|
r39442 | remove added file folder1/i (Yn)? y | ||
Matt Harbison
|
r35394 | removing folder1/i | ||
Laurent Charignon
|
r25258 | diff --git a/f b/f | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
Kyle Lippincott
|
r42766 | examine changes to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-a | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Kyle Lippincott
|
r42766 | apply change 1/6 to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -b | ||
Kyle Lippincott
|
r42766 | apply change 2/6 to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25258 | diff --git a/folder1/g b/folder1/g | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
Kyle Lippincott
|
r42766 | examine changes to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-c | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Kyle Lippincott
|
r42766 | apply change 3/6 to 'folder1/g'? | ||
(enter ? for help) [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) | ||
Kyle Lippincott
|
r42766 | apply change 3/6 to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
Kyle Lippincott
|
r42766 | apply change 4/6 to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] n | ||||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25258 | diff --git a/folder2/h b/folder2/h | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
Kyle Lippincott
|
r42766 | examine changes to 'folder2/h'? | ||
(enter ? for help) [Ynesfdaq?] n | ||||
Laurent Charignon
|
r24359 | |||
Yuya Nishihara
|
r39451 | reverting f | ||
Sushil khanchi
|
r39442 | reverting folder1/g | ||
Laurent Charignon
|
r24359 | $ 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 | ||||
Laurent Charignon
|
r25258 | diff --git a/folder1/g b/folder1/g | ||
Pierre-Yves David
|
r24698 | 1 hunks, 1 lines changed | ||
Kyle Lippincott
|
r42766 | examine changes to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] q | ||||
Pierre-Yves David
|
r24698 | |||
abort: user quit | ||||
[255] | ||||
skarlage
|
r29498 | $ ls folder1/ | ||
g | ||||
Mads Kiilerich
|
r30332 | Test that a noop revert doesn't do an unnecessary backup | ||
Denis Laxalde
|
r42238 | $ (echo n) | hg revert -i -r 2 folder1/g | ||
skarlage
|
r29498 | diff --git a/folder1/g b/folder1/g | ||
1 hunks, 1 lines changed | ||||
Denis Laxalde
|
r34969 | @@ -3,4 +3,3 @@ | ||
skarlage
|
r29498 | 3 | ||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
Kyle Lippincott
|
r42766 | apply this change to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] n | ||||
skarlage
|
r29498 | |||
$ ls folder1/ | ||||
g | ||||
Test --no-backup | ||||
Denis Laxalde
|
r42238 | $ (echo y) | hg revert -i -C -r 2 folder1/g | ||
skarlage
|
r29498 | diff --git a/folder1/g b/folder1/g | ||
1 hunks, 1 lines changed | ||||
Denis Laxalde
|
r34969 | @@ -3,4 +3,3 @@ | ||
skarlage
|
r29498 | 3 | ||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
Kyle Lippincott
|
r42766 | apply this change to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
skarlage
|
r29498 | |||
$ ls folder1/ | ||||
g | ||||
Pulkit Goyal
|
r38097 | >>> open('folder1/g', 'wb').write(b"1\n2\n3\n4\n5\nd\n") and None | ||
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 | ||||
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 | ||
Kyle Lippincott
|
r42766 | examine changes to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-a | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Kyle Lippincott
|
r42766 | apply change 1/6 to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -b | ||
Kyle Lippincott
|
r42766 | apply change 2/6 to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25258 | diff --git a/folder1/g b/folder1/g | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
Kyle Lippincott
|
r42766 | examine changes to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -1,6 +1,5 @@ | ||
-c | ||||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Kyle Lippincott
|
r42766 | apply change 3/6 to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24359 | |||
Denis Laxalde
|
r34969 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24359 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Denis Laxalde
|
r34969 | -d | ||
Kyle Lippincott
|
r42766 | apply change 4/6 to 'folder1/g'? | ||
(enter ? for help) [Ynesfdaq?] n | ||||
Laurent Charignon
|
r24359 | |||
Laurent Charignon
|
r25258 | diff --git a/folder2/h b/folder2/h | ||
Laurent Charignon
|
r24359 | 2 hunks, 2 lines changed | ||
Kyle Lippincott
|
r42766 | examine changes to 'folder2/h'? | ||
(enter ? for help) [Ynesfdaq?] n | ||||
Laurent Charignon
|
r24359 | |||
Yuya Nishihara
|
r39451 | reverting f | ||
Sushil khanchi
|
r39442 | reverting folder1/g | ||
Laurent Charignon
|
r24359 | $ 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 | ||||
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 | ||
Laurent Charignon
|
r25657 | @@ -1,6 +1,5 @@ | ||
-a | ||||
Laurent Charignon
|
r24475 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Kyle Lippincott
|
r42766 | discard change 1/2 to 'f'? | ||
(enter ? for help) [Ynesfdaq?] ? | ||||
Boris Feld
|
r32068 | |||
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) | ||||
Kyle Lippincott
|
r42766 | discard change 1/2 to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r24475 | |||
Laurent Charignon
|
r25657 | @@ -2,6 +1,5 @@ | ||
Laurent Charignon
|
r24475 | 1 | ||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
Laurent Charignon
|
r25657 | -b | ||
Kyle Lippincott
|
r42766 | discard change 2/2 to 'f'? | ||
(enter ? for help) [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 | ||
Denis Laxalde
|
r42238 | |||
Patterns | ||||
$ hg revert -i 'glob:f*' << EOF | ||||
> y | ||||
> n | ||||
> EOF | ||||
diff --git a/f b/f | ||||
1 hunks, 1 lines changed | ||||
Kyle Lippincott
|
r42766 | examine changes to 'f'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Denis Laxalde
|
r42238 | |||
@@ -4,4 +4,3 @@ | ||||
3 | ||||
4 | ||||
5 | ||||
-b | ||||
Kyle Lippincott
|
r42766 | discard this change to 'f'? | ||
(enter ? for help) [Ynesfdaq?] n | ||||
Denis Laxalde
|
r42238 | |||
Laurent Charignon
|
r25259 | $ 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 | diff --git a/k b/k | ||
1 hunks, 2 lines changed | ||||
Kyle Lippincott
|
r42766 | examine changes to 'k'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Laurent Charignon
|
r25259 | |||
Laurent Charignon
|
r25657 | @@ -1,1 +1,2 @@ | ||
-1 | ||||
+0 | ||||
+2 | ||||
Kyle Lippincott
|
r42766 | discard this change to 'k'? | ||
(enter ? for help) [Ynesfdaq?] e | ||||
Laurent Charignon
|
r25259 | |||
Sushil khanchi
|
r39442 | reverting k | ||
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 | ||||
Denis Laxalde
|
r30531 | forget added file newfile (Yn)? n | ||
liscju
|
r27985 | $ hg status | ||
A newfile | ||||
$ hg revert -i <<EOF | ||||
> y | ||||
> EOF | ||||
Sushil khanchi
|
r39442 | forget added file newfile (Yn)? y | ||
liscju
|
r27985 | forgetting newfile | ||
$ 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 | ||||
diff --git a/a b/a | ||||
1 hunks, 1 lines changed | ||||
Kyle Lippincott
|
r42766 | examine changes to 'a'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Jun Wu
|
r33941 | |||
Denis Laxalde
|
r34969 | @@ -1,2 +1,1 @@ | ||
Jun Wu
|
r33941 | 0 | ||
Denis Laxalde
|
r34969 | -1 | ||
Jun Wu
|
r33941 | \ No newline at end of file | ||
Kyle Lippincott
|
r42766 | apply this change to 'a'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Jun Wu
|
r33941 | |||
Sushil khanchi
|
r39442 | reverting a | ||
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 .. | ||
Taapas Agrawal
|
r41663 | |||
Prompt before undeleting file(issue6008) | ||||
$ hg init repo | ||||
$ cd repo | ||||
$ echo a > a | ||||
$ hg ci -qAm a | ||||
$ hg rm a | ||||
$ hg revert -i<<EOF | ||||
> y | ||||
> EOF | ||||
add back removed file a (Yn)? y | ||||
undeleting a | ||||
$ ls | ||||
a | ||||
$ hg rm a | ||||
$ hg revert -i<<EOF | ||||
> n | ||||
> EOF | ||||
add back removed file a (Yn)? n | ||||
$ ls | ||||
Martin von Zweigbergk
|
r42154 | $ hg revert -a | ||
undeleting a | ||||
Taapas Agrawal
|
r41663 | $ cd .. | ||
Martin von Zweigbergk
|
r42154 | |||
Test "keep" mode | ||||
$ cat <<EOF >> $HGRCPATH | ||||
> [experimental] | ||||
> revert.interactive.select-to-keep = true | ||||
> EOF | ||||
$ cd repo | ||||
$ printf "x\na\ny\n" > a | ||||
$ hg diff | ||||
diff -r cb9a9f314b8b a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a Thu Jan 01 00:00:00 1970 +0000 | ||||
@@ -1,1 +1,3 @@ | ||||
+x | ||||
a | ||||
+y | ||||
$ cat > $TESTTMP/editor.sh << '__EOF__' | ||||
> echo "+new line" >> "$1" | ||||
> __EOF__ | ||||
$ HGEDITOR="\"sh\" \"${TESTTMP}/editor.sh\"" hg revert -i <<EOF | ||||
> y | ||||
> n | ||||
> e | ||||
> EOF | ||||
diff --git a/a b/a | ||||
2 hunks, 2 lines changed | ||||
Kyle Lippincott
|
r42766 | examine changes to 'a'? | ||
(enter ? for help) [Ynesfdaq?] y | ||||
Martin von Zweigbergk
|
r42154 | |||
@@ -1,1 +1,2 @@ | ||||
+x | ||||
a | ||||
Kyle Lippincott
|
r42766 | keep change 1/2 to 'a'? | ||
(enter ? for help) [Ynesfdaq?] n | ||||
Martin von Zweigbergk
|
r42154 | |||
@@ -1,1 +2,2 @@ | ||||
a | ||||
+y | ||||
Kyle Lippincott
|
r42766 | keep change 2/2 to 'a'? | ||
(enter ? for help) [Ynesfdaq?] e | ||||
Martin von Zweigbergk
|
r42154 | |||
reverting a | ||||
$ cat a | ||||
a | ||||
y | ||||
new line | ||||