##// END OF EJS Templates
diff: add --binary option for git mode diffs...
diff: add --binary option for git mode diffs This patch adds --binary option to `hg diff` and `hg export` to allow more control about when binary diffs are displayed in Git mode as well as some tests to verify it behaves correctly (issue5510).

File last commit:

r31196:3af9a962 default
r31822:fde4822b default
Show More
test-revert-interactive.t
439 lines | 7.2 KiB | text/troff | Tads3Lexer
/ tests / test-revert-interactive.t
Laurent Charignon
revert: add flag to make revert interactive
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
revert: makes interactive mode ask to forget added files (issue4936)...
r27985 > purge =
Laurent Charignon
revert: add flag to make revert interactive
r24359 > EOF
Yuya Nishihara
test-revert-interactive: eliminate bashism in wildcard pattern...
r24389 $ mkdir -p a/folder1 a/folder2
Laurent Charignon
revert: add flag to make revert interactive
r24359 $ cd a
$ hg init
Matt Harbison
test-interactive: use stable EOL in various file generating routines...
r24434 >>> open('f', 'wb').write("1\n2\n3\n4\n5\n")
$ hg add f ; hg commit -m "adding f"
Matt Harbison
tests: replace uses of 'seq' with portable 'seq.py'
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
test-interactive: use stable EOL in various file generating routines...
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
revert: add flag to make revert interactive
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
Denis Laxalde
revert: prompt before removing files in interactive mode...
r30532 > y
Laurent Charignon
revert: add flag to make revert interactive
r24359 > n
> n
> EOF
reverting f
reverting folder1/g (glob)
removing folder1/i (glob)
reverting folder2/h (glob)
Denis Laxalde
revert: prompt before removing files in interactive mode...
r30532 remove added file folder1/i (Yn)? y
Laurent Charignon
revert: make revert --interactive use git style diff...
r25258 diff --git a/f b/f
Laurent Charignon
revert: add flag to make revert interactive
r24359 2 hunks, 2 lines changed
examine changes to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +1,6 @@
+a
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 1/6 to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +2,6 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Laurent Charignon
revert: change the direction of revert -i...
r25657 +b
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 2/6 to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: make revert --interactive use git style diff...
r25258 diff --git a/folder1/g b/folder1/g
Laurent Charignon
revert: add flag to make revert interactive
r24359 2 hunks, 2 lines changed
examine changes to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +1,6 @@
+c
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +2,6 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Laurent Charignon
revert: change the direction of revert -i...
r25657 +d
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: make revert --interactive use git style diff...
r25258 diff --git a/folder2/h b/folder2/h
Laurent Charignon
revert: add flag to make revert interactive
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
revert: do not requires '--all' if '--interative' is present...
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
revert: make revert --interactive use git style diff...
r25258 diff --git a/folder1/g b/folder1/g
Pierre-Yves David
revert: do not requires '--all' if '--interative' is present...
r24698 1 hunks, 1 lines changed
examine changes to 'folder1/g'? [Ynesfdaq?] q
abort: user quit
[255]
skarlage
revert: don't backup if no files reverted in interactive mode (issue4793)...
r29498 $ ls folder1/
g
Mads Kiilerich
spelling: fixes of non-dictionary words
r30332 Test that a noop revert doesn't do an unnecessary backup
skarlage
revert: don't backup if no files reverted in interactive mode (issue4793)...
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
revert: do not requires '--all' if '--interative' is present...
r24698
Laurent Charignon
revert: add flag to make revert interactive
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
revert: prompt before removing files in interactive mode...
r30532 > n
Laurent Charignon
revert: add flag to make revert interactive
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
revert: prompt before removing files in interactive mode...
r30532 remove added file folder1/i (Yn)? n
Laurent Charignon
revert: make revert --interactive use git style diff...
r25258 diff --git a/f b/f
Laurent Charignon
revert: add flag to make revert interactive
r24359 2 hunks, 2 lines changed
examine changes to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +1,6 @@
+a
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 1/6 to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +2,6 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Laurent Charignon
revert: change the direction of revert -i...
r25657 +b
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 2/6 to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: make revert --interactive use git style diff...
r25258 diff --git a/folder1/g b/folder1/g
Laurent Charignon
revert: add flag to make revert interactive
r24359 2 hunks, 2 lines changed
examine changes to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +1,6 @@
+c
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,5 +2,6 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Laurent Charignon
revert: change the direction of revert -i...
r25657 +d
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n
Laurent Charignon
revert: add flag to make revert interactive
r24359
Laurent Charignon
revert: make revert --interactive use git style diff...
r25258 diff --git a/folder2/h b/folder2/h
Laurent Charignon
revert: add flag to make revert interactive
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
revert: fix --interactive on local modification (issue4576)...
r24475 $ hg st
M f
M folder1/g
$ hg revert --interactive f << EOF
> y
> y
> n
> n
> EOF
Laurent Charignon
revert: make revert --interactive use git style diff...
r25258 diff --git a/f b/f
Laurent Charignon
revert: fix --interactive on local modification (issue4576)...
r24475 2 hunks, 2 lines changed
examine changes to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,6 +1,5 @@
-a
Laurent Charignon
revert: fix --interactive on local modification (issue4576)...
r24475 1
2
3
4
5
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 discard change 1/2 to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: fix --interactive on local modification (issue4576)...
r24475
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -2,6 +1,5 @@
Laurent Charignon
revert: fix --interactive on local modification (issue4576)...
r24475 1
2
3
4
5
Laurent Charignon
revert: change the direction of revert -i...
r25657 -b
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 discard change 2/2 to 'f'? [Ynesfdaq?] n
Laurent Charignon
revert: fix --interactive on local modification (issue4576)...
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
revert: fix edition of newly added file during --interactive...
r25259 $ rm f.orig
$ hg update -C .
Denis Laxalde
revert: prompt before removing files in interactive mode...
r30532 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Laurent Charignon
revert: fix edition of newly added file during --interactive...
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
revert: change a test to make the change of direction of revert -i easier...
r25656 2) Add k
$ printf "1\n" > k
$ hg add k
$ hg commit -m "add k"
Laurent Charignon
revert: fix edition of newly added file during --interactive...
r25259
Laurent Charignon
revert: change a test to make the change of direction of revert -i easier...
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
revert: fix edition of newly added file during --interactive...
r25259 > y
> e
> EOF
Laurent Charignon
revert: change a test to make the change of direction of revert -i easier...
r25656 reverting k
diff --git a/k b/k
1 hunks, 2 lines changed
examine changes to 'k'? [Ynesfdaq?] y
Laurent Charignon
revert: fix edition of newly added file during --interactive...
r25259
Laurent Charignon
revert: change the direction of revert -i...
r25657 @@ -1,1 +1,2 @@
-1
+0
+2
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 discard this change to 'k'? [Ynesfdaq?] e
Laurent Charignon
revert: fix edition of newly added file during --interactive...
r25259
Laurent Charignon
revert: change a test to make the change of direction of revert -i easier...
r25656 $ cat k
Laurent Charignon
revert: fix edition of newly added file during --interactive...
r25259 42
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424
Check the experimental config to invert the selection:
$ cat <<EOF >> $HGRCPATH
> [experimental]
Laurent Charignon
revert: change the direction of revert -i...
r25657 > revertalternateinteractivemode=False
Laurent Charignon
revert: add an experimental config to use inverted selection...
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
revert: change a test to make the change of direction of revert -i easier...
r25656 diff -r a3d963a027aa folder1/g
Laurent Charignon
revert: add an experimental config to use inverted selection...
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
revert: always display hunks reversed when reverting to parent...
r31196 @@ -1,4 +1,5 @@
+firstline
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424 c
1
2
3
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 discard change 1/3 to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424
Denis Laxalde
revert: always display hunks reversed when reverting to parent...
r31196 @@ -1,7 +2,7 @@
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424 c
1
2
3
Denis Laxalde
revert: always display hunks reversed when reverting to parent...
r31196 -4
+ 3
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424 5
d
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 discard change 2/3 to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424
Denis Laxalde
revert: always display hunks reversed when reverting to parent...
r31196 @@ -6,2 +7,3 @@
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424 5
d
Denis Laxalde
revert: always display hunks reversed when reverting to parent...
r31196 +lastline
Denis Laxalde
revert: use "discard"/"revert" verb when reverting interactively (issue5143)...
r29283 discard change 3/3 to 'folder1/g'? [Ynesfdaq?] n
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424
$ hg diff --nodates
Laurent Charignon
revert: change a test to make the change of direction of revert -i easier...
r25656 diff -r a3d963a027aa folder1/g
Laurent Charignon
revert: add an experimental config to use inverted selection...
r25424 --- a/folder1/g
+++ b/folder1/g
@@ -5,3 +5,4 @@
4
5
d
+lastline
liscju
revert: makes interactive mode ask to forget added files (issue4936)...
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
revert: indicate the default choice when prompting to forget files
r30531 forget added file newfile (Yn)? n
liscju
revert: makes interactive mode ask to forget added files (issue4936)...
r27985 $ hg status
A newfile
$ hg revert -i <<EOF
> y
> EOF
forgetting newfile
Denis Laxalde
revert: indicate the default choice when prompting to forget files
r30531 forget added file newfile (Yn)? y
liscju
revert: makes interactive mode ask to forget added files (issue4936)...
r27985 $ hg status
? newfile