##// END OF EJS Templates
phabricator: warn if unable to amend, instead of aborting after posting...
phabricator: warn if unable to amend, instead of aborting after posting There was a divergence in behavior here between obsolete and strip based amending. I first noticed the abort when testing outside of the test harness, but then had trouble recreating it here after reverting the code changes. It turns out, strip based amend was successfully amending the public commit after it was posted! It looks like the protection is in the `commit --amend` command, not in the underlying code that it calls. I considered doing a preflight check and aborting. But the locks are only acquired at the end, if amending, and this is too large a section of code to be wrapped in a maybe-it's-held-or-not context manager for my tastes. Additionally, some people do post-push reviews, and amending is the default behavior, so they shouldn't see a misleading error message. The lack of a 'Differential Revision' entry in the commit message breaks a {phabreview} test, so it had to be partially conditionalized.

File last commit:

r39451:1cbe19eb default
r41198:0101a35d default
Show More
test-revert-interactive.t
426 lines | 7.4 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
Pulkit Goyal
py3: fix .write() calls in few tests...
r38097 >>> open('f', 'wb').write(b"1\n2\n3\n4\n5\n") and None
Matt Harbison
test-interactive: use stable EOL in various file generating routines...
r24434 $ 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"
Pulkit Goyal
py3: fix .write() calls in few tests...
r38097 >>> open('f', 'wb').write(b"a\n1\n2\n3\n4\n5\nb\n") and None
Matt Harbison
test-interactive: use stable EOL in various file generating routines...
r24434 $ hg commit -m "modifying f"
Pulkit Goyal
py3: fix .write() calls in few tests...
r38097 >>> open('folder1/g', 'wb').write(b"c\n1\n2\n3\n4\n5\nd\n") and None
Matt Harbison
test-interactive: use stable EOL in various file generating routines...
r24434 $ hg commit -m "modifying folder1/g"
Pulkit Goyal
py3: fix .write() calls in few tests...
r38097 >>> open('folder2/h', 'wb').write(b"e\n1\n2\n3\n4\n5\nf\n") and None
Matt Harbison
test-interactive: use stable EOL in various file generating routines...
r24434 $ 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
Boris Feld
record: update help message to use operation instead of "record" (issue5432)...
r32068 > ?
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
Sushil khanchi
revert: fix the inconsistency of status msgs in --interactive mode...
r39442 remove added file folder1/i (Yn)? y
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing folder1/i
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
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -1,6 +1,5 @@
-a
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 apply change 1/6 to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -2,6 +1,5 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 -b
apply 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
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -1,6 +1,5 @@
-c
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 apply change 3/6 to 'folder1/g'? [Ynesfdaq?] ?
Boris Feld
record: update help message to use operation instead of "record" (issue5432)...
r32068
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 y - yes, apply this change
Boris Feld
record: update help message to use operation instead of "record" (issue5432)...
r32068 n - no, skip this change
e - edit this change manually
s - skip remaining changes to this file
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 f - apply remaining changes to this file
Boris Feld
record: update help message to use operation instead of "record" (issue5432)...
r32068 d - done, skip remaining changes and files
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 a - apply all changes to all remaining files
q - quit, applying no changes
Boris Feld
record: update help message to use operation instead of "record" (issue5432)...
r32068 ? - ? (display help)
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 apply change 3/6 to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -2,6 +1,5 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 -d
apply 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
Yuya Nishihara
revert: stabilize status message of chunks selected interactively...
r39451 reverting f
Sushil khanchi
revert: fix the inconsistency of status msgs in --interactive mode...
r39442 reverting folder1/g
Laurent Charignon
revert: add flag to make revert interactive
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
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
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
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -3,4 +3,3 @@
skarlage
revert: don't backup if no files reverted in interactive mode (issue4793)...
r29498 3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 -d
apply this change to 'folder1/g'? [Ynesfdaq?] n
skarlage
revert: don't backup if no files reverted in interactive mode (issue4793)...
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
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -3,4 +3,3 @@
skarlage
revert: don't backup if no files reverted in interactive mode (issue4793)...
r29498 3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 -d
apply this change to 'folder1/g'? [Ynesfdaq?] y
skarlage
revert: don't backup if no files reverted in interactive mode (issue4793)...
r29498
$ ls folder1/
g
Pulkit Goyal
py3: fix .write() calls in few tests...
r38097 >>> open('folder1/g', 'wb').write(b"1\n2\n3\n4\n5\nd\n") and None
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
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
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -1,6 +1,5 @@
-a
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 apply change 1/6 to 'f'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -2,6 +1,5 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 -b
apply 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
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -1,6 +1,5 @@
-c
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 apply change 3/6 to 'folder1/g'? [Ynesfdaq?] y
Laurent Charignon
revert: add flag to make revert interactive
r24359
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -2,6 +1,5 @@
Laurent Charignon
revert: add flag to make revert interactive
r24359 1
2
3
4
5
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 -d
apply 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
Yuya Nishihara
revert: stabilize status message of chunks selected interactively...
r39451 reverting f
Sushil khanchi
revert: fix the inconsistency of status msgs in --interactive mode...
r39442 reverting folder1/g
Laurent Charignon
revert: add flag to make revert interactive
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
revert: fix --interactive on local modification (issue4576)...
r24475 $ hg st
M f
M folder1/g
$ hg revert --interactive f << EOF
> y
Boris Feld
record: update help message to use operation instead of "record" (issue5432)...
r32068 > ?
Laurent Charignon
revert: fix --interactive on local modification (issue4576)...
r24475 > 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
Boris Feld
record: update help message to use operation instead of "record" (issue5432)...
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
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 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
Sushil khanchi
revert: fix the inconsistency of status msgs in --interactive mode...
r39442 reverting k
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
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
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
Sushil khanchi
revert: fix the inconsistency of status msgs in --interactive mode...
r39442 forget added file newfile (Yn)? y
liscju
revert: makes interactive mode ask to forget added files (issue4936)...
r27985 forgetting newfile
$ hg status
? newfile
Jun Wu
record: fix revert -i for lines without newline (issue5651)...
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
examine changes to 'a'? [Ynesfdaq?] y
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 @@ -1,2 +1,1 @@
Jun Wu
record: fix revert -i for lines without newline (issue5651)...
r33941 0
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 -1
Jun Wu
record: fix revert -i for lines without newline (issue5651)...
r33941 \ No newline at end of file
Denis Laxalde
revert: do not reverse hunks in interactive when REV is not parent (issue5096)...
r34969 apply this change to 'a'? [Ynesfdaq?] y
Jun Wu
record: fix revert -i for lines without newline (issue5651)...
r33941
Sushil khanchi
revert: fix the inconsistency of status msgs in --interactive mode...
r39442 reverting a
Jun Wu
record: fix revert -i for lines without newline (issue5651)...
r33941 $ cat a
0
Denis Laxalde
tests: add a test demonstrate that 'revert -i' ignores nonexistent patterns...
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
record: fix revert -i for lines without newline (issue5651)...
r33941 $ cd ..