mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
99386e40fd
Summary: debuginhibit was removed since we no longer have a separate inhibit state. smartlog hack about changing "o" to "x" was removed since "obsolete()" revset is correct and the hack is unnecessary now. directaccess was removed from tests since inhibit does not depend on it. `- obsolete()` was added to some revsets to avoid divergence and other surprises. Use `inhibit.revive` API in infinitepush and reset to revive changesets properly. Remove various hacky code that mangle inhibit state in corner cases. Most test changes are `o` changed to `x` in output since we draw `obsolete()` state correctly now. `test-infinitepush-backup-remotefilelog.t` change was because output could be `bytes/sec` instead of `KB/sec`. Test Plan: arc unit Reviewers: #mercurial, kulshrax Reviewed By: kulshrax Subscribers: kulshrax, medson, mjpieters Differential Revision: https://phabricator.intern.facebook.com/D5391361 Signature: t1:5391361:1499722618:d3c1cf629f0c59ecdf1dfd5e653c1eb6176646b8
361 lines
6.7 KiB
Perl
361 lines
6.7 KiB
Perl
Set up test environment.
|
|
$ cat >> $HGRCPATH << EOF
|
|
> [extensions]
|
|
> fbamend=$TESTDIR/../hgext3rd/fbamend
|
|
> inhibit=$TESTDIR/../hgext3rd/inhibit.py
|
|
> rebase=
|
|
> strip=
|
|
> [experimental]
|
|
> evolution = createmarkers, allowunstable
|
|
> [ui]
|
|
> interactive = true
|
|
> [fbamend]
|
|
> safestrip = false
|
|
> EOF
|
|
$ mkcommit() {
|
|
> echo "${1}1" > "${1}1"
|
|
> echo "${1}2" > "${1}2"
|
|
> hg add "${1}1" "${1}2"
|
|
> hg ci -m "add ${1}1 and ${1}2"
|
|
> }
|
|
$ reset() {
|
|
> cd ..
|
|
> rm -rf repo
|
|
> hg init repo
|
|
> cd repo
|
|
> }
|
|
$ showgraph() {
|
|
> hg log --graph -T "{rev} {desc|firstline}" | sed \$d
|
|
> }
|
|
|
|
Initialize repo.
|
|
$ hg init repo && cd repo
|
|
$ mkcommit a
|
|
$ mkcommit b
|
|
$ mkcommit c
|
|
$ mkcommit d
|
|
$ showgraph
|
|
@ 3 add d1 and d2
|
|
|
|
|
o 2 add c1 and c2
|
|
|
|
|
o 1 add b1 and b2
|
|
|
|
|
o 0 add a1 and a2
|
|
|
|
Test that split behaves correctly on error.
|
|
$ hg split -r 0 1 2
|
|
abort: more than one revset is given
|
|
(use either `hg split <rs>` or `hg split --rev <rs>`, not both)
|
|
[255]
|
|
|
|
Test basic case of splitting a head.
|
|
$ hg split << EOF
|
|
> y
|
|
> y
|
|
> n
|
|
> y
|
|
> EOF
|
|
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
adding d1
|
|
adding d2
|
|
diff --git a/d1 b/d1
|
|
new file mode 100644
|
|
examine changes to 'd1'? [Ynesfdaq?] y
|
|
|
|
@@ -0,0 +1,1 @@
|
|
+d1
|
|
record change 1/2 to 'd1'? [Ynesfdaq?] y
|
|
|
|
diff --git a/d2 b/d2
|
|
new file mode 100644
|
|
examine changes to 'd2'? [Ynesfdaq?] n
|
|
|
|
created new head
|
|
Done splitting? [yN] y
|
|
|
|
$ showgraph
|
|
@ 5 add d1 and d2
|
|
|
|
|
o 4 add d1 and d2
|
|
|
|
|
o 2 add c1 and c2
|
|
|
|
|
o 1 add b1 and b2
|
|
|
|
|
o 0 add a1 and a2
|
|
|
|
Split in the middle of a stack.
|
|
$ hg up 2
|
|
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
$ hg split << EOF
|
|
> y
|
|
> y
|
|
> n
|
|
> y
|
|
> EOF
|
|
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
adding c1
|
|
adding c2
|
|
diff --git a/c1 b/c1
|
|
new file mode 100644
|
|
examine changes to 'c1'? [Ynesfdaq?] y
|
|
|
|
@@ -0,0 +1,1 @@
|
|
+c1
|
|
record change 1/2 to 'c1'? [Ynesfdaq?] y
|
|
|
|
diff --git a/c2 b/c2
|
|
new file mode 100644
|
|
examine changes to 'c2'? [Ynesfdaq?] n
|
|
|
|
created new head
|
|
Done splitting? [yN] y
|
|
rebasing 4:* "add d1 and d2" (glob)
|
|
rebasing 5:* "add d1 and d2"* (glob)
|
|
|
|
$ showgraph
|
|
o 9 add d1 and d2
|
|
|
|
|
o 8 add d1 and d2
|
|
|
|
|
@ 7 add c1 and c2
|
|
|
|
|
o 6 add c1 and c2
|
|
|
|
|
o 1 add b1 and b2
|
|
|
|
|
o 0 add a1 and a2
|
|
|
|
Split with multiple children and using hash.
|
|
$ hg up c20c
|
|
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
|
|
$ mkcommit d
|
|
created new head
|
|
$ hg split c20c << EOF
|
|
> y
|
|
> y
|
|
> n
|
|
> y
|
|
> EOF
|
|
0 files updated, 0 files merged, 4 files removed, 0 files unresolved
|
|
adding a1
|
|
adding a2
|
|
diff --git a/a1 b/a1
|
|
new file mode 100644
|
|
examine changes to 'a1'? [Ynesfdaq?] y
|
|
|
|
@@ -0,0 +1,1 @@
|
|
+a1
|
|
record change 1/2 to 'a1'? [Ynesfdaq?] y
|
|
|
|
diff --git a/a2 b/a2
|
|
new file mode 100644
|
|
examine changes to 'a2'? [Ynesfdaq?] n
|
|
|
|
created new head
|
|
Done splitting? [yN] y
|
|
rebasing 1:* "add b1 and b2" (glob)
|
|
rebasing 6:* "add c1 and c2" (glob)
|
|
rebasing 7:* "add c1 and c2" (glob)
|
|
rebasing 8:* "add d1 and d2" (glob)
|
|
rebasing 9:* "add d1 and d2" (glob)
|
|
rebasing 10:* "add d1 and d2"* (glob)
|
|
|
|
$ showgraph
|
|
o 18 add d1 and d2
|
|
|
|
|
| o 17 add d1 and d2
|
|
| |
|
|
| o 16 add d1 and d2
|
|
| |
|
|
| o 15 add c1 and c2
|
|
| |
|
|
| o 14 add c1 and c2
|
|
| |
|
|
| o 13 add b1 and b2
|
|
|/
|
|
@ 12 add a1 and a2
|
|
|
|
|
o 11 add a1 and a2
|
|
|
|
Split using revset.
|
|
$ hg strip 18
|
|
saved backup bundle to * (glob)
|
|
$ hg split "children(.)" << EOF
|
|
> y
|
|
> y
|
|
> n
|
|
> y
|
|
> EOF
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
adding b1
|
|
adding b2
|
|
diff --git a/b1 b/b1
|
|
new file mode 100644
|
|
examine changes to 'b1'? [Ynesfdaq?] y
|
|
|
|
@@ -0,0 +1,1 @@
|
|
+b1
|
|
record change 1/2 to 'b1'? [Ynesfdaq?] y
|
|
|
|
diff --git a/b2 b/b2
|
|
new file mode 100644
|
|
examine changes to 'b2'? [Ynesfdaq?] n
|
|
|
|
created new head
|
|
Done splitting? [yN] y
|
|
rebasing 14:* "add c1 and c2" (glob)
|
|
rebasing 15:* "add c1 and c2" (glob)
|
|
rebasing 16:* "add d1 and d2" (glob)
|
|
rebasing 17:* "add d1 and d2"* (glob)
|
|
|
|
$ showgraph
|
|
o 23 add d1 and d2
|
|
|
|
|
o 22 add d1 and d2
|
|
|
|
|
o 21 add c1 and c2
|
|
|
|
|
o 20 add c1 and c2
|
|
|
|
|
@ 19 add b1 and b2
|
|
|
|
|
o 18 add b1 and b2
|
|
|
|
|
o 12 add a1 and a2
|
|
|
|
|
o 11 add a1 and a2
|
|
|
|
o 10 add d1 and d2
|
|
|
|
|
x 0 add a1 and a2
|
|
|
|
Test that command aborts when given multiple commits.
|
|
$ hg split 11 12
|
|
abort: more than one revset is given
|
|
(use either `hg split <rs>` or `hg split --rev <rs>`, not both)
|
|
[255]
|
|
|
|
Test --no-rebase flag.
|
|
$ mkcommit e
|
|
created new head
|
|
$ hg rebase -s 20 -d .
|
|
rebasing 20:* "add c1 and c2" (glob)
|
|
rebasing 21:* "add c1 and c2" (glob)
|
|
rebasing 22:* "add d1 and d2" (glob)
|
|
rebasing 23:* "add d1 and d2" (glob)
|
|
$ showgraph
|
|
o 28 add d1 and d2
|
|
|
|
|
o 27 add d1 and d2
|
|
|
|
|
o 26 add c1 and c2
|
|
|
|
|
o 25 add c1 and c2
|
|
|
|
|
@ 24 add e1 and e2
|
|
|
|
|
o 19 add b1 and b2
|
|
|
|
|
o 18 add b1 and b2
|
|
|
|
|
o 12 add a1 and a2
|
|
|
|
|
o 11 add a1 and a2
|
|
|
|
o 10 add d1 and d2
|
|
|
|
|
x 0 add a1 and a2
|
|
$ hg split --no-rebase << EOF
|
|
> y
|
|
> y
|
|
> n
|
|
> y
|
|
> EOF
|
|
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
adding e1
|
|
adding e2
|
|
diff --git a/e1 b/e1
|
|
new file mode 100644
|
|
examine changes to 'e1'? [Ynesfdaq?] y
|
|
|
|
@@ -0,0 +1,1 @@
|
|
+e1
|
|
record change 1/2 to 'e1'? [Ynesfdaq?] y
|
|
|
|
diff --git a/e2 b/e2
|
|
new file mode 100644
|
|
examine changes to 'e2'? [Ynesfdaq?] n
|
|
|
|
created new head
|
|
Done splitting? [yN] y
|
|
|
|
$ showgraph
|
|
@ 30 add e1 and e2
|
|
|
|
|
o 29 add e1 and e2
|
|
|
|
|
| o 28 add d1 and d2
|
|
| |
|
|
| o 27 add d1 and d2
|
|
| |
|
|
| o 26 add c1 and c2
|
|
| |
|
|
| o 25 add c1 and c2
|
|
| |
|
|
| x 24 add e1 and e2
|
|
|/
|
|
o 19 add b1 and b2
|
|
|
|
|
o 18 add b1 and b2
|
|
|
|
|
o 12 add a1 and a2
|
|
|
|
|
o 11 add a1 and a2
|
|
|
|
o 10 add d1 and d2
|
|
|
|
|
x 0 add a1 and a2
|
|
|
|
Test that bookmarks are correctly moved.
|
|
$ reset
|
|
$ mkcommit a
|
|
$ hg book test1
|
|
$ hg book test2
|
|
$ hg bookmarks
|
|
test1 0:* (glob)
|
|
* test2 0:* (glob)
|
|
$ hg split << EOF
|
|
> y
|
|
> y
|
|
> n
|
|
> y
|
|
> EOF
|
|
(leaving bookmark test2)
|
|
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
|
adding a1
|
|
adding a2
|
|
diff --git a/a1 b/a1
|
|
new file mode 100644
|
|
examine changes to 'a1'? [Ynesfdaq?] y
|
|
|
|
@@ -0,0 +1,1 @@
|
|
+a1
|
|
record change 1/2 to 'a1'? [Ynesfdaq?] y
|
|
|
|
diff --git a/a2 b/a2
|
|
new file mode 100644
|
|
examine changes to 'a2'? [Ynesfdaq?] n
|
|
|
|
created new head
|
|
Done splitting? [yN] y
|
|
|
|
$ showgraph
|
|
@ 2 add a1 and a2
|
|
|
|
|
o 1 add a1 and a2
|
|
$ hg bookmarks
|
|
test1 2:* (glob)
|
|
* test2 2:* (glob)
|