Please enable JavaScript to use RhodeCode Enterprise
##// END OF EJS Templates
/
tests / test-absorb-rename.t
$ cat >> $ HGRCPATH << EOF
> [ diff ]
> git = 1
> [ extensions ]
> absorb =
> EOF
$ sedi () { # workaround check - code
> pattern = "$1"
> shift
> for i in "$@" ; do
> sed "$pattern" "$i" > "$i" . tmp
> mv "$i" . tmp "$i"
> done
> }
rename a to b , then b to a
$ hg init repo1
$ cd repo1
$ echo 1 > a
$ hg ci - A a - m 1
$ hg mv a b
$ echo 2 >> b
$ hg ci - m 2
$ hg mv b a
$ echo 3 >> a
$ hg ci - m 3
$ hg annotate - ncf a
0 eff892de26ec a : 1
1 bf56e1f4f857 b : 2
2 0 b888b00216c a : 3
$ sedi 's/$/a/' a
$ hg absorb - apq
showing changes for a
@@ - 0 , 3 + 0 , 3 @@
eff892d - 1
bf56e1f - 2
0 b888b0 - 3
eff892d + 1 a
bf56e1f + 2 a
0 b888b0 + 3 a
3 changesets affected
0 b888b0 3
bf56e1f 2
eff892d 1
$ hg status
$ hg annotate - ncf a
0 5 d1c5620e6f2 a : 1 a
1 9 a14ffe67ae9 b : 2 a
2 9191 d121a268 a : 3 a
when the first changeset is public
$ hg phase -- public - r 0
$ sedi 's/a/A/' a
$ hg absorb - apq
showing changes for a
@@ - 0 , 3 + 0 , 3 @@
- 1 a
9 a14ffe - 2 a
9191 d12 - 3 a
+ 1 A
9 a14ffe + 2 A
9191 d12 + 3 A
2 changesets affected
9191 d12 3
9 a14ffe 2
$ hg diff
diff -- git a / a b / a
--- a / a
+++ b / a
@@ - 1 , 3 + 1 , 3 @@
- 1 a
+ 1 A
2 A
3 A
copy a to b
$ cd ..
$ hg init repo2
$ cd repo2
$ echo 1 > a
$ hg ci - A a - m 1
$ hg cp a b
$ echo 2 >> b
$ hg ci - m 2
$ hg log - T ' {rev} : {node|short} {desc} \n '
1 : 17 b72129ab68 2
0 : eff892de26ec 1
$ sedi 's/$/a/' a
$ sedi 's/$/b/' b
$ hg absorb - apq
showing changes for a
@@ - 0 , 1 + 0 , 1 @@
eff892d - 1
eff892d + 1 a
showing changes for b
@@ - 0 , 2 + 0 , 2 @@
- 1
17 b7212 - 2
+ 1 b
17 b7212 + 2 b
2 changesets affected
17 b7212 2
eff892d 1
$ hg diff
diff -- git a / b b / b
--- a / b
+++ b / b
@@ - 1 , 2 + 1 , 2 @@
- 1
+ 1 b
2 b
copy b to a
$ cd ..
$ hg init repo3
$ cd repo3
$ echo 1 > b
$ hg ci - A b - m 1
$ hg cp b a
$ echo 2 >> a
$ hg ci - m 2
$ hg log - T ' {rev} : {node|short} {desc} \n '
1 : e62c256d8b24 2
0 : 55105 f940d5c 1
$ sedi 's/$/a/' a
$ sedi 's/$/a/' b
$ hg absorb - apq
showing changes for a
@@ - 0 , 2 + 0 , 2 @@
- 1
e62c256 - 2
+ 1 a
e62c256 + 2 a
showing changes for b
@@ - 0 , 1 + 0 , 1 @@
55105 f9 - 1
55105 f9 + 1 a
2 changesets affected
e62c256 2
55105 f9 1
$ hg diff
diff -- git a / a b / a
--- a / a
+++ b / a
@@ - 1 , 2 + 1 , 2 @@
- 1
+ 1 a
2 a
"move" b to both a and c , follow a - sorted alphabetically
$ cd ..
$ hg init repo4
$ cd repo4
$ echo 1 > b
$ hg ci - A b - m 1
$ hg cp b a
$ hg cp b c
$ hg rm b
$ echo 2 >> a
$ echo 3 >> c
$ hg commit - m cp
$ hg log - T ' {rev} : {node|short} {desc} \n '
1 : 366 daad8e679 cp
0 : 55105 f940d5c 1
$ sedi 's/$/a/' a
$ sedi 's/$/c/' c
$ hg absorb - apq
showing changes for a
@@ - 0 , 2 + 0 , 2 @@
55105 f9 - 1
366 daad - 2
55105 f9 + 1 a
366 daad + 2 a
showing changes for c
@@ - 0 , 2 + 0 , 2 @@
- 1
366 daad - 3
+ 1 c
366 daad + 3 c
2 changesets affected
366 daad cp
55105 f9 1
$ hg log - G - p - T ' {rev} : {node|short} {desc} \n '
@ 1 : 70606019 f91b cp
| diff -- git a / b b / a
| rename from b
| rename to a
| --- a / b
| +++ b / a
| @@ - 1 , 1 + 1 , 2 @@
| 1 a
| + 2 a
| diff -- git a / b b / c
| copy from b
| copy to c
| --- a / b
| +++ b / c
| @@ - 1 , 1 + 1 , 2 @@
| - 1 a
| + 1
| + 3 c
|
o 0 : bfb67c3539c1 1
diff -- git a / b b / b
new file mode 100644
--- / dev / null
+++ b / b
@@ - 0 , 0 + 1 , 1 @@
+ 1 a
run absorb again would apply the change to c
$ hg absorb - apq
showing changes for c
@@ - 0 , 1 + 0 , 1 @@
7060601 - 1
7060601 + 1 c
1 changesets affected
7060601 cp
$ hg log - G - p - T ' {rev} : {node|short} {desc} \n '
@ 1 : 8 bd536cce368 cp
| diff -- git a / b b / a
| rename from b
| rename to a
| --- a / b
| +++ b / a
| @@ - 1 , 1 + 1 , 2 @@
| 1 a
| + 2 a
| diff -- git a / b b / c
| copy from b
| copy to c
| --- a / b
| +++ b / c
| @@ - 1 , 1 + 1 , 2 @@
| - 1 a
| + 1 c
| + 3 c
|
o 0 : bfb67c3539c1 1
diff -- git a / b b / b
new file mode 100644
--- / dev / null
+++ b / b
@@ - 0 , 0 + 1 , 1 @@
+ 1 a
"move" b to a , c and d , follow d if a gets renamed to e , and c is deleted
$ cd ..
$ hg init repo5
$ cd repo5
$ echo 1 > b
$ hg ci - A b - m 1
$ hg cp b a
$ hg cp b c
$ hg cp b d
$ hg rm b
$ echo 2 >> a
$ echo 3 >> c
$ echo 4 >> d
$ hg commit - m cp
$ hg mv a e
$ hg rm c
$ hg commit - m mv
$ hg log - T ' {rev} : {node|short} {desc} \n '
2 : 49911557 c471 mv
1 : 7 bc3d43ede83 cp
0 : 55105 f940d5c 1
$ sedi 's/$/e/' e
$ sedi 's/$/d/' d
$ hg absorb - apq
showing changes for d
@@ - 0 , 2 + 0 , 2 @@
55105 f9 - 1
7 bc3d43 - 4
55105 f9 + 1 d
7 bc3d43 + 4 d
showing changes for e
@@ - 0 , 2 + 0 , 2 @@
- 1
7 bc3d43 - 2
+ 1 e
7 bc3d43 + 2 e
2 changesets affected
7 bc3d43 cp
55105 f9 1
$ hg diff
diff -- git a / e b / e
--- a / e
+++ b / e
@@ - 1 , 2 + 1 , 2 @@
- 1
+ 1 e
2 e
$ hg log - G - p - T ' {rev} : {node|short} {desc} \n '
@ 2 : 34 be9b0c786e mv
| diff -- git a / c b / c
| deleted file mode 100644
| --- a / c
| +++ / dev / null
| @@ - 1 , 2 + 0 , 0 @@
| - 1
| - 3
| diff -- git a / a b / e
| rename from a
| rename to e
|
o 1 : 13e56 db5948d cp
| diff -- git a / b b / a
| rename from b
| rename to a
| --- a / b
| +++ b / a
| @@ - 1 , 1 + 1 , 2 @@
| - 1 d
| + 1
| + 2 e
| diff -- git a / b b / c
| copy from b
| copy to c
| --- a / b
| +++ b / c
| @@ - 1 , 1 + 1 , 2 @@
| - 1 d
| + 1
| + 3
| diff -- git a / b b / d
| copy from b
| copy to d
| --- a / b
| +++ b / d
| @@ - 1 , 1 + 1 , 2 @@
| 1 d
| + 4 d
|
o 0 : 0037613 a5dc6 1
diff -- git a / b b / b
new file mode 100644
--- / dev / null
+++ b / b
@@ - 0 , 0 + 1 , 1 @@
+ 1 d
Site-wide shortcuts
/
Use quick search box
g h
Goto home page
g g
Goto my private gists page
g G
Goto my public gists page
g 0-9
Goto bookmarked items from 0-9
n r
New repository page
n g
New gist page
Repositories
g s
Goto summary page
g c
Goto changelog page
g f
Goto files page
g F
Goto files page with file search activated
g p
Goto pull requests page
g o
Goto repository settings
g O
Goto repository access permissions settings
t s
Toggle sidebar on some pages