sapling/eden/scm/tests/test-histedit-base.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

257 lines
5.3 KiB
Perl

#require py2
#chg-compatible
TODO: configure mutation
$ configure noevolution
$ . "$TESTDIR/histedit-helpers.sh"
$ enable histedit
Create repo a:
$ hg init a
$ cd a
$ hg unbundle "$TESTDIR/bundles/rebase.hg"
adding changesets
adding manifests
adding file changes
added 8 changesets with 7 changes to 7 files
$ hg up tip
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ tglogp
@ 7: 02de42196ebe draft 'H'
|
| o 6: eea13746799a draft 'G'
|/|
o | 5: 24b6387c8c8c draft 'F'
| |
| o 4: 9520eea781bc draft 'E'
|/
| o 3: 32af7686d403 draft 'D'
| |
| o 2: 5fddd98957c8 draft 'C'
| |
| o 1: 42ccdea3bb16 draft 'B'
|/
o 0: cd010b8cd998 draft 'A'
Verify that implicit base command and help are listed
$ HGEDITOR=cat hg histedit |grep base
# b, base = checkout changeset and apply further changesets from there
Go to D
$ hg update 3
3 files updated, 0 files merged, 2 files removed, 0 files unresolved
edit the history to rebase B onto H
Rebase B onto H
$ hg histedit 1 --commands - 2>&1 << EOF | fixbundle
> base 02de42196ebe
> pick 42ccdea3bb16 B
> pick 5fddd98957c8 C
> pick 32af7686d403 D
> EOF
$ tglogp
@ 7: 0937e82309df draft 'D'
|
o 6: f778d1cbddac draft 'C'
|
o 5: 3d41b7cc7085 draft 'B'
|
o 4: 02de42196ebe draft 'H'
|
| o 3: eea13746799a draft 'G'
|/|
o | 2: 24b6387c8c8c draft 'F'
| |
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'
Rebase back and drop something
$ hg histedit 5 --commands - 2>&1 << EOF | fixbundle
> base cd010b8cd998
> pick 3d41b7cc7085 B
> drop f778d1cbddac C
> pick 0937e82309df D
> EOF
$ tglogp
@ 6: 476cc3e4168d draft 'D'
|
o 5: d273e35dcdf2 draft 'B'
|
| o 4: 02de42196ebe draft 'H'
| |
| | o 3: eea13746799a draft 'G'
| |/|
| o | 2: 24b6387c8c8c draft 'F'
|/ /
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'
Split stack
$ hg histedit 5 --commands - 2>&1 << EOF | fixbundle
> base cd010b8cd998
> pick d273e35dcdf2 B
> base cd010b8cd998
> pick 476cc3e4168d D
> EOF
$ tglogp
@ 6: d7a6f907a822 draft 'D'
|
| o 5: d273e35dcdf2 draft 'B'
|/
| o 4: 02de42196ebe draft 'H'
| |
| | o 3: eea13746799a draft 'G'
| |/|
| o | 2: 24b6387c8c8c draft 'F'
|/ /
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'
Abort
$ echo x > B
$ hg add B
$ hg commit -m "X"
$ tglogp
@ 7: 591369deedfd draft 'X'
|
o 6: d7a6f907a822 draft 'D'
|
| o 5: d273e35dcdf2 draft 'B'
|/
| o 4: 02de42196ebe draft 'H'
| |
| | o 3: eea13746799a draft 'G'
| |/|
| o | 2: 24b6387c8c8c draft 'F'
|/ /
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'
$ hg histedit 6 --commands - 2>&1 << EOF | fixbundle
> base d273e35dcdf2 B
> drop d7a6f907a822 D
> pick 591369deedfd X
> EOF
merging B
warning: 1 conflicts while merging B! (edit, then use 'hg resolve --mark')
Fix up the change (pick 591369deedfd)
(hg histedit --continue to resume)
$ hg histedit --abort | fixbundle
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ tglogp
@ 7: 591369deedfd draft 'X'
|
o 6: d7a6f907a822 draft 'D'
|
| o 5: d273e35dcdf2 draft 'B'
|/
| o 4: 02de42196ebe draft 'H'
| |
| | o 3: eea13746799a draft 'G'
| |/|
| o | 2: 24b6387c8c8c draft 'F'
|/ /
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'
Continue
$ hg histedit 6 --commands - 2>&1 << EOF | fixbundle
> base d273e35dcdf2 B
> drop d7a6f907a822 D
> pick 591369deedfd X
> EOF
merging B
warning: 1 conflicts while merging B! (edit, then use 'hg resolve --mark')
Fix up the change (pick 591369deedfd)
(hg histedit --continue to resume)
$ echo b2 > B
$ hg resolve --mark B
(no more unresolved files)
continue: hg histedit --continue
$ hg histedit --continue | fixbundle
$ tglogp
@ 6: 03772da75548 draft 'X'
|
o 5: d273e35dcdf2 draft 'B'
|
| o 4: 02de42196ebe draft 'H'
| |
| | o 3: eea13746799a draft 'G'
| |/|
| o | 2: 24b6387c8c8c draft 'F'
|/ /
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'
base on a previously picked changeset
$ echo i > i
$ hg add i
$ hg commit -m "I"
$ echo j > j
$ hg add j
$ hg commit -m "J"
$ tglogp
@ 8: e8c55b19d366 draft 'J'
|
o 7: b2f90fd8aa85 draft 'I'
|
o 6: 03772da75548 draft 'X'
|
o 5: d273e35dcdf2 draft 'B'
|
| o 4: 02de42196ebe draft 'H'
| |
| | o 3: eea13746799a draft 'G'
| |/|
| o | 2: 24b6387c8c8c draft 'F'
|/ /
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'
$ hg histedit 5 --commands - 2>&1 << EOF | fixbundle
> pick d273e35dcdf2 B
> pick 03772da75548 X
> base d273e35dcdf2 B
> pick e8c55b19d366 J
> base d273e35dcdf2 B
> pick b2f90fd8aa85 I
> EOF
hg: parse error: base "d273e35dcdf2" changeset was an edited list candidate
(base must only use unlisted changesets)
$ tglogp
@ 8: e8c55b19d366 draft 'J'
|
o 7: b2f90fd8aa85 draft 'I'
|
o 6: 03772da75548 draft 'X'
|
o 5: d273e35dcdf2 draft 'B'
|
| o 4: 02de42196ebe draft 'H'
| |
| | o 3: eea13746799a draft 'G'
| |/|
| o | 2: 24b6387c8c8c draft 'F'
|/ /
| o 1: 9520eea781bc draft 'E'
|/
o 0: cd010b8cd998 draft 'A'