sapling/eden/scm/tests/test-commitcloud-sync-bookmarks.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

176 lines
5.2 KiB
Perl

#require py2
#chg-compatible
$ enable amend commitcloud infinitepush rebase remotenames pullcreatemarkers
$ disable treemanifest
$ setconfig ui.ssh="python \"$TESTDIR/dummyssh\""
$ setconfig commitcloud.hostname=testhost
$ setconfig remotefilelog.reponame=server
$ hg init server
$ cd server
$ setconfig infinitepush.server=yes infinitepush.reponame=testrepo
$ setconfig infinitepush.indextype=disk infinitepush.storetype=disk
$ touch base
$ hg commit -Aqm base
$ hg phase -p .
$ cd ..
$ hg clone ssh://user@dummy/server client1 -q
$ cd client1
$ setconfig commitcloud.servicetype=local commitcloud.servicelocation=$TESTTMP
$ setconfig commitcloud.user_token_path=$TESTTMP
$ hg cloud auth -t xxxxxx
setting authentication token
authentication successful
$ hg cloud join
commitcloud: this repository is now connected to the 'user/test/default' workspace for the 'server' repo
commitcloud: synchronizing 'server' with 'user/test/default'
commitcloud: commits synchronized
finished in * (glob)
$ echo data > file
$ hg commit -Aqm "draft-commit
> Differential Revision: https://phabricator.fb.com/D1234"
$ hg book foo
$ hg prev -q
[df4f53] base
$ hg cloud sync -q
$ cd ..
$ hg clone ssh://user@dummy/server client2 -q
$ cd client2
$ setconfig commitcloud.servicetype=local commitcloud.servicelocation=$TESTTMP
$ setconfig commitcloud.user_token_path=$TESTTMP
$ hg cloud join
commitcloud: this repository is now connected to the 'user/test/default' workspace for the 'server' repo
commitcloud: synchronizing 'server' with 'user/test/default'
pulling 00422fad0026
pulling from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
commitcloud: commits synchronized
finished in * (glob)
$ tglogp
o 1: 00422fad0026 draft 'draft-commit
| Differential Revision: https://phabricator.fb.com/D1234' foo
@ 0: df4f53cec30a public 'base'
$ cd ..
Fake land the commit
$ cd server
$ echo 1 > serverfile
$ hg commit -Aqm public-commit-1
$ echo data > file
$ hg commit -Aqm "landed-commit
> Differential Revision: https://phabricator.fb.com/D1234"
$ echo 2 > serverfile
$ hg commit -Aqm public-commit-2
$ hg phase -p .
$ cd ..
$ cd client1
$ hg pull
pulling from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 changes to 2 files
obsoleted 1 changesets
$ tglogp
o 4: 67d363c9001e public 'public-commit-2'
|
o 3: 441f69264760 public 'landed-commit
| Differential Revision: https://phabricator.fb.com/D1234'
o 2: 031d760782fb public 'public-commit-1'
|
| x 1: 00422fad0026 draft 'draft-commit
|/ Differential Revision: https://phabricator.fb.com/D1234' foo
@ 0: df4f53cec30a public 'base'
$ hg cloud sync -q
$ cd ../client2
$ hg cloud sync -q
$ tglogp
x 1: 00422fad0026 draft 'draft-commit
| Differential Revision: https://phabricator.fb.com/D1234' foo
@ 0: df4f53cec30a public 'base'
Rebasing the bookmark will make the draft commit disappear.
$ cd ../client1
$ hg rebase -b foo -d 4
note: not rebasing 00422fad0026 "draft-commit" (foo), already in destination as 441f69264760 "landed-commit"
$ tglogp
o 4: 67d363c9001e public 'public-commit-2' foo
|
o 3: 441f69264760 public 'landed-commit
| Differential Revision: https://phabricator.fb.com/D1234'
o 2: 031d760782fb public 'public-commit-1'
|
@ 0: df4f53cec30a public 'base'
$ hg cloud sync
commitcloud: synchronizing 'server' with 'user/test/default'
commitcloud: commits synchronized
finished in * (glob)
$ tglogp
o 4: 67d363c9001e public 'public-commit-2' foo
|
o 3: 441f69264760 public 'landed-commit
| Differential Revision: https://phabricator.fb.com/D1234'
o 2: 031d760782fb public 'public-commit-1'
|
@ 0: df4f53cec30a public 'base'
Sync in client2. This will omit the bookmark because we don't have the landed commit.
$ cd ../client2
$ hg cloud sync -q
67d363c9001e1d7227625f0fa5004aca4572d214 not found, omitting foo bookmark
$ tglogp
@ 0: df4f53cec30a public 'base'
Pull so that we have the public commit and sync again.
$ hg pull
pulling from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 changes to 2 files
$ hg cloud sync
commitcloud: synchronizing 'server' with 'user/test/default'
commitcloud: commits synchronized
finished in * (glob)
The draft commit is also gone from here, and the workspace is stable.
$ tglogp
o 4: 67d363c9001e public 'public-commit-2' foo
|
o 3: 441f69264760 public 'landed-commit
| Differential Revision: https://phabricator.fb.com/D1234'
o 2: 031d760782fb public 'public-commit-1'
|
@ 0: df4f53cec30a public 'base'
$ cd ../client1
$ hg cloud sync -q
$ tglogp
o 4: 67d363c9001e public 'public-commit-2' foo
|
o 3: 441f69264760 public 'landed-commit
| Differential Revision: https://phabricator.fb.com/D1234'
o 2: 031d760782fb public 'public-commit-1'
|
@ 0: df4f53cec30a public 'base'