sapling/eden/scm/tests/test-amend-next.t
Zeyi (Rice) Fan 92f6f35e7a mark all tests requiring Python 2
Summary:
This diff marks **ALL** mercurial tests requiring Python 2 feature.

After you fixes some tests, simply remove the `py2` feature requirement and that tests will be continuously run after your diff is landed.

To bypass this feature requirement, run the tests command with `HGTEST_FORCE_PY2=1`. For example:

```
HGTEST_FORCE_PY2=1 buck test //eden/scm/tests:hg_run_tests
```

or

```
HGTEST_FORCE_PY2=1 python run-tests.py
```

----

Basically this diff are created with the following commands:

```
$ sed -i 's/import feature\(.*\)$/import feature\1\n\nfeature.require(["py2"])/' test-*-t.py
$ sed -i '1s/^/#require py2\n/' test-*.t
$ ls | grep -P "^test.*(?<\!-t)\.py$" > list && vim -p $(cat list)
# manually adding feature requires for these Python tests.
```

(Note: this ignores all push blocking failures!)

ignore-conflict-markers

Reviewed By: singhsrb

Differential Revision: D19655148

fbshipit-source-id: 985e3ccb4010cc559049f1d89f8909bc2d9b5e20
2020-01-30 18:49:21 -08:00

294 lines
7.3 KiB
Perl

#require py2
#chg-compatible
Set up test environment.
$ configure mutation-norecord
$ enable amend rebase
$ showgraph() {
> hg log --graph -T "{rev} {bookmarks} {desc|firstline}" | sed \$d
> }
$ newrepo
Check help text for new options and removal of unsupported options.
$ hg next --help
hg next [OPTIONS]... [STEPS]
aliases: n
check out a child commit
Options:
--newest always pick the newest child when a changeset has
multiple children
--rebase rebase each changeset if necessary
--top update to the head of the current stack
--bookmark update to the first changeset with a bookmark
--no-activate-bookmark do not activate the bookmark on the destination
changeset
--towards VALUE move linearly towards the specified head
-C --clean discard uncommitted changes (no backup)
-B --move-bookmark move active bookmark
-m --merge merge uncommitted changes
(some details hidden, use --verbose to show complete help)
Create stack of commits and go to the bottom.
$ hg debugbuilddag --mergeable-file +6
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg book bottom
$ showgraph
o 5 r5
|
o 4 r4
|
o 3 r3
|
o 2 r2
|
o 1 r1
|
@ 0 bottom r0
Test invalid argument combinations.
$ hg next --top 1
abort: cannot use both number and --top
[255]
$ hg next --bookmark 1
abort: cannot use both number and --bookmark
[255]
$ hg next --top --bookmark
abort: cannot use both --top and --bookmark
[255]
$ hg next --top --towards top
abort: cannot use both --top and --towards
[255]
Test basic usage.
$ hg next
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] r1 (glob)
With positional argument.
$ hg next 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[*] r3 (glob)
Overshoot top of repo.
$ hg next 5
reached head changeset
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[*] r5 (glob)
Test --top flag.
$ hg up bottom
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark bottom)
$ hg next --top
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] r5 (glob)
Test bookmark navigation.
$ hg book -r 5 top
$ hg book -r 3 bookmark
$ showgraph
@ 5 top r5
|
o 4 r4
|
o 3 bookmark r3
|
o 2 r2
|
o 1 r1
|
o 0 bottom r0
$ hg up bottom
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark bottom)
$ hg next --bookmark
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] (bookmark) r3 (glob)
(activating bookmark bookmark)
$ hg next --bookmark
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bookmark)
[*] (top) r5 (glob)
(activating bookmark top)
Test bookmark activation.
$ hg up bottom
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark bottom)
$ hg next 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] (bookmark) r3 (glob)
(activating bookmark bookmark)
$ hg next 2 --no-activate-bookmark
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bookmark)
[*] (top) r5 (glob)
Test dirty working copy and --clean.
$ hg up bottom
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark bottom)
$ touch test
$ hg add test
$ hg st
A test
$ hg next
abort: uncommitted changes
(use --clean to discard uncommitted changes or --merge to bring them along)
[255]
$ hg next --clean
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] r1 (glob)
$ hg st
? test
$ rm test
Test dirty working copy and --merge.
$ hg up bottom
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark bottom)
$ echo test >> mf
$ hg st
M mf
$ hg next
abort: uncommitted changes
(use --clean to discard uncommitted changes or --merge to bring them along)
[255]
$ hg next --merge
merging mf
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] r1 (glob)
$ hg st
M mf
$ hg up -C .
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Test --newest flag.
$ hg up 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ touch test
$ hg add test
$ hg commit -m "test"
$ hg book other
$ showgraph
@ 6 other test
|
| o 5 top r5
| |
| o 4 r4
|/
o 3 bookmark r3
|
o 2 r2
|
o 1 r1
|
o 0 bottom r0
$ hg up bottom
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
(activating bookmark bottom)
$ hg next --top
current stack has multiple heads, namely:
[*] (top) r5 (glob)
[*] (other) test (glob)
abort: ambiguous next changeset
(use the --newest flag to always pick the newest child at each step)
[255]
$ hg log -r .
changeset: 0:fdaccbb26270
bookmark: bottom
user: debugbuilddag
date: Thu Jan 01 00:00:00 1970 +0000
summary: r0
$ hg next --top --newest
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] (other) test (glob)
(activating bookmark other)
Test --towards flag.
$ hg up bottom
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
(activating bookmark bottom)
$ showgraph
o 6 other test
|
| o 5 top r5
| |
| o 4 r4
|/
o 3 bookmark r3
|
o 2 r2
|
o 1 r1
|
@ 0 bottom r0
$ hg next 4 --towards 1
changeset * has multiple children, namely: (glob)
[*] r4 (glob)
[*] (other) test (glob)
abort: ambiguous next changeset
(use the --newest or --towards flags to specify which child to pick)
[255]
$ hg next 4 --towards 'top+other'
abort: 'top+other' refers to multiple changesets
[255]
$ hg next 4 --towards top
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(leaving bookmark bottom)
[*] r4 (glob)
$ hg next --towards other
abort: the current changeset is not an ancestor of 'other'
[255]
Test next prefer draft commit.
$ hg up 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ showgraph
o 6 other test
|
| o 5 top r5
| |
| o 4 r4
|/
@ 3 bookmark r3
|
o 2 r2
|
o 1 r1
|
o 0 bottom r0
Here we have 2 draft children.
$ hg next
changeset * has multiple children, namely: (glob)
[*] r4 (glob)
[*] (other) test (glob)
abort: ambiguous next changeset
(use the --newest or --towards flags to specify which child to pick)
[255]
Let's make one of child commits public.
$ hg phase -p top
Now we have only 1 draft child.
$ hg next
changeset * has multiple children, namely: (glob)
[*] r4 (glob)
[*] (other) test (glob)
choosing the only draft child: * (glob)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
[*] (other) test (glob)
(activating bookmark other)