##// END OF EJS Templates
subrepo: calculate _relpath for hgsubrepo based on self instead of parent...
subrepo: calculate _relpath for hgsubrepo based on self instead of parent Prior to 105758d1b37b, the subrelpath() (now _relpath) for hgsubrepo was calculated by removing the root path of the outermost repo from the root path of the subrepo. Since the root paths use platform specific separators, and the relative path is printed by various commands, the output of these commands require a glob (and check-code.py enforces this). In an effort to be generic to all subrepos, 105758d1b37b started calculating this path based on the parent repo, and then joining the subrepo path in .hgsub. One of the tests in test-subrepo.t creates a subrepo inside a directory, so the path being joined contained '/' instead of '\'. This made the test fail with a '~' status, because the glob is unnecessary[1]. Removing them made the test work, but then check-code complains. We can't just drop the check-code rule, because sub-subrepos are still joined with '\'. Presumably the other subrepo types have this issue as well, but there likely isn't a test with git or svn repos inside a subdirectory. This simply restores the exact _relpath value (and output) for hgsubrepos prior to 105758d1b37b. [1] http://www.selenic.com/pipermail/mercurial-devel/2015-April/068720.html

File last commit:

r24698:a85c4ed1 default
r24786:56e15db9 default
Show More
test-revert-interactive.t
272 lines | 4.2 KiB | text/troff | Tads3Lexer
/ tests / test-revert-interactive.t
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 =
> EOF
$ mkdir -p a/folder1 a/folder2
$ cd a
$ hg init
>>> open('f', 'wb').write("1\n2\n3\n4\n5\n")
$ hg add f ; hg commit -m "adding f"
$ 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"
>>> 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"
$ 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
> n
> n
> EOF
reverting f
reverting folder1/g (glob)
removing folder1/i (glob)
reverting folder2/h (glob)
diff -r 89ac3d72e4a4 f
2 hunks, 2 lines changed
examine changes to 'f'? [Ynesfdaq?] y
@@ -1,6 +1,5 @@
-a
1
2
3
4
5
record change 1/6 to 'f'? [Ynesfdaq?] y
@@ -2,6 +1,5 @@
1
2
3
4
5
-b
record change 2/6 to 'f'? [Ynesfdaq?] y
diff -r 89ac3d72e4a4 folder1/g
2 hunks, 2 lines changed
examine changes to 'folder1/g'? [Ynesfdaq?] y
@@ -1,6 +1,5 @@
-c
1
2
3
4
5
record change 3/6 to 'folder1/g'? [Ynesfdaq?] y
@@ -2,6 +1,5 @@
1
2
3
4
5
-d
record change 4/6 to 'folder1/g'? [Ynesfdaq?] n
diff -r 89ac3d72e4a4 folder2/h
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
Test that --interactive lift the need for --all
$ echo q | hg revert -i -r 2
reverting folder1/g (glob)
reverting folder2/h (glob)
diff -r 89ac3d72e4a4 folder1/g
1 hunks, 1 lines changed
examine changes to 'folder1/g'? [Ynesfdaq?] q
abort: user quit
[255]
$ rm folder1/g.orig
$ hg update -C 6
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg revert -i -r 2 --all -- << EOF
> y
> y
> y
> y
> y
> n
> n
> EOF
reverting f
reverting folder1/g (glob)
removing folder1/i (glob)
reverting folder2/h (glob)
diff -r 89ac3d72e4a4 f
2 hunks, 2 lines changed
examine changes to 'f'? [Ynesfdaq?] y
@@ -1,6 +1,5 @@
-a
1
2
3
4
5
record change 1/6 to 'f'? [Ynesfdaq?] y
@@ -2,6 +1,5 @@
1
2
3
4
5
-b
record change 2/6 to 'f'? [Ynesfdaq?] y
diff -r 89ac3d72e4a4 folder1/g
2 hunks, 2 lines changed
examine changes to 'folder1/g'? [Ynesfdaq?] y
@@ -1,6 +1,5 @@
-c
1
2
3
4
5
record change 3/6 to 'folder1/g'? [Ynesfdaq?] y
@@ -2,6 +1,5 @@
1
2
3
4
5
-d
record change 4/6 to 'folder1/g'? [Ynesfdaq?] n
diff -r 89ac3d72e4a4 folder2/h
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
$ hg st
M f
M folder1/g
R folder1/i
$ hg revert --interactive f << EOF
> y
> y
> n
> n
> EOF
diff -r 59dd6e4ab63a f
2 hunks, 2 lines changed
examine changes to 'f'? [Ynesfdaq?] y
@@ -1,5 +1,6 @@
+a
1
2
3
4
5
record change 1/2 to 'f'? [Ynesfdaq?] y
@@ -1,5 +2,6 @@
1
2
3
4
5
+b
record change 2/2 to 'f'? [Ynesfdaq?] n
$ hg st
M f
M folder1/g
R folder1/i
? f.orig
$ cat f
a
1
2
3
4
5
$ cat f.orig
1
2
3
4
5