2019-12-10 02:24:31 +03:00
|
|
|
#chg-compatible
|
|
|
|
|
2016-07-12 22:39:34 +03:00
|
|
|
|
2016-03-22 04:08:04 +03:00
|
|
|
Setup
|
|
|
|
|
2020-06-11 03:33:43 +03:00
|
|
|
$ configure mutation-norecord dummyssh
|
2020-01-20 13:42:49 +03:00
|
|
|
$ enable amend pullcreatemarkers pushrebase rebase remotenames
|
|
|
|
$ setconfig ui.username="nobody <no.reply@fb.com>" experimental.rebaseskipobsolete=true
|
|
|
|
$ setconfig remotenames.allownonfastforward=true
|
2016-03-22 04:08:04 +03:00
|
|
|
|
|
|
|
Test that hg pull creates obsolescence markers for landed diffs
|
|
|
|
$ hg init server
|
|
|
|
$ mkcommit() {
|
|
|
|
> echo "$1" > "$1"
|
|
|
|
> hg add "$1"
|
|
|
|
> echo "add $1" > msg
|
|
|
|
> echo "" >> msg
|
|
|
|
> [ -z "$2" ] || echo "Differential Revision: https://phabricator.fb.com/D$2" >> msg
|
|
|
|
> hg ci -l msg
|
|
|
|
> }
|
|
|
|
$ land_amend() {
|
|
|
|
> hg log -r. -T'{desc}\n' > msg
|
|
|
|
> echo "Reviewed By: someone" >> msg
|
|
|
|
> hg ci --amend -l msg
|
|
|
|
> }
|
|
|
|
|
|
|
|
Set up server repository
|
|
|
|
|
|
|
|
$ cd server
|
|
|
|
$ mkcommit initial
|
|
|
|
$ mkcommit secondcommit
|
|
|
|
$ hg book master
|
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
Set up a client repository, and work on 3 diffs
|
|
|
|
|
|
|
|
$ hg clone ssh://user@dummy/server client -q
|
|
|
|
$ cd client
|
|
|
|
$ mkcommit b 123 # 123 is the phabricator rev number (see function above)
|
|
|
|
$ mkcommit c 124
|
|
|
|
$ mkcommit d 131
|
2020-10-08 06:58:22 +03:00
|
|
|
$ hg log -G -T '"{desc}" {remotebookmarks}' -r 'all()'
|
|
|
|
@ "add d
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D131"
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add c
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D124"
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add b
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D123"
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add secondcommit" default/master
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add initial"
|
2016-03-22 04:08:04 +03:00
|
|
|
|
|
|
|
|
|
|
|
Now land the first two diff, but with amended commit messages, as would happen
|
|
|
|
when a diff is landed with landcastle.
|
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg update -r 11b76ecbf1d49ab485207f46d8c45ee8c96b1bfb
|
2016-03-22 04:08:04 +03:00
|
|
|
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg graft -r 948715751816b5aaf59c890f413d3b4c89008f12
|
2020-01-24 02:52:19 +03:00
|
|
|
grafting 948715751816 "add b"
|
2016-03-22 04:08:04 +03:00
|
|
|
$ land_amend
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg graft -r 0e229072f72376ff68c3ead4de01e8b8888e1e50
|
2020-01-24 02:52:19 +03:00
|
|
|
grafting 0e229072f723 "add c"
|
2016-03-22 04:08:04 +03:00
|
|
|
$ land_amend
|
|
|
|
$ hg push -r . --to master
|
|
|
|
pushing rev cc68f5e5f8d6 to destination ssh://user@dummy/server bookmark master
|
|
|
|
searching for changes
|
2020-02-28 04:51:13 +03:00
|
|
|
updating bookmark master
|
2017-07-24 21:42:24 +03:00
|
|
|
remote: pushing 2 changesets:
|
2016-03-22 04:08:04 +03:00
|
|
|
remote: e0672eeeb97c add b
|
|
|
|
remote: cc68f5e5f8d6 add c
|
|
|
|
|
|
|
|
Strip the commits we just landed.
|
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg update -r 11b76ecbf1d49ab485207f46d8c45ee8c96b1bfb
|
2016-03-22 04:08:04 +03:00
|
|
|
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg debugstrip -r e0672eeeb97c5767cc642e702951cfcfa73cdc82
|
2016-03-22 04:08:04 +03:00
|
|
|
|
|
|
|
Here pull should now detect commits 2 and 3 as landed, but it won't be able to
|
|
|
|
hide them since there is a non-hidden successor.
|
|
|
|
|
|
|
|
$ hg pull
|
|
|
|
pulling from ssh://user@dummy/server
|
|
|
|
searching for changes
|
|
|
|
adding changesets
|
|
|
|
adding manifests
|
|
|
|
adding file changes
|
2019-11-07 21:50:10 +03:00
|
|
|
added 2 changesets with 0 changes to 2 files
|
2020-10-08 06:58:22 +03:00
|
|
|
$ hg log -G -T '"{desc}" {remotebookmarks}' -r 'all()'
|
|
|
|
o "add c
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D124
|
|
|
|
│ Reviewed By: someone" default/master
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add b
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D123
|
|
|
|
│ Reviewed By: someone"
|
|
|
|
│ o "add d
|
|
|
|
│ │
|
|
|
|
│ │ Differential Revision: https://phabricator.fb.com/D131"
|
|
|
|
│ x "add c
|
|
|
|
│ │
|
|
|
|
│ │ Differential Revision: https://phabricator.fb.com/D124"
|
|
|
|
│ x "add b
|
|
|
|
├─╯
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D123"
|
2020-10-08 06:58:22 +03:00
|
|
|
@ "add secondcommit"
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add initial"
|
2016-03-22 04:08:04 +03:00
|
|
|
|
2020-10-08 06:58:22 +03:00
|
|
|
$ hg log -T '{node}\n' -r 'allsuccessors(948715751816b5aaf59c890f413d3b4c89008f12)'
|
|
|
|
e0672eeeb97c5767cc642e702951cfcfa73cdc82
|
|
|
|
$ hg log -T '{node}\n' -r 'allsuccessors(0e229072f72376ff68c3ead4de01e8b8888e1e50)'
|
|
|
|
cc68f5e5f8d6a0aa5683ff6fb1afd15aa95a08b8
|
2016-03-22 04:08:04 +03:00
|
|
|
|
|
|
|
Now land the last diff.
|
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg update -r 'max(desc(add))'
|
2016-03-22 04:08:04 +03:00
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg graft -r e4b5974890c0ceff0317ecbc08ec357613fd01dd
|
2020-01-24 02:52:19 +03:00
|
|
|
grafting e4b5974890c0 "add d"
|
2016-03-22 04:08:04 +03:00
|
|
|
$ land_amend
|
|
|
|
$ hg push -r . --to master
|
|
|
|
pushing rev 296f9d37d5c1 to destination ssh://user@dummy/server bookmark master
|
|
|
|
searching for changes
|
2020-02-28 04:51:13 +03:00
|
|
|
updating bookmark master
|
2017-07-24 21:42:24 +03:00
|
|
|
remote: pushing 1 changeset:
|
2016-03-22 04:08:04 +03:00
|
|
|
remote: 296f9d37d5c1 add d
|
|
|
|
|
|
|
|
And strip the commit we just landed.
|
|
|
|
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg update -r cc68f5e5f8d6a0aa5683ff6fb1afd15aa95a08b8
|
2016-03-22 04:08:04 +03:00
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
2020-07-07 00:00:16 +03:00
|
|
|
$ hg debugstrip -r 'max(desc(add))'
|
2016-03-22 04:08:04 +03:00
|
|
|
|
|
|
|
Here pull should now detect commit 4 has been landed. It should hide this
|
|
|
|
commit, and should also hide 3 and 2, which were previously landed, but up
|
|
|
|
until now had non-hidden successors.
|
|
|
|
|
|
|
|
$ hg pull
|
|
|
|
pulling from ssh://user@dummy/server
|
|
|
|
searching for changes
|
|
|
|
adding changesets
|
|
|
|
adding manifests
|
|
|
|
adding file changes
|
2019-11-07 21:50:10 +03:00
|
|
|
added 1 changesets with 0 changes to 1 files
|
2020-10-08 06:58:22 +03:00
|
|
|
$ hg log -G -T '"{desc}" {remotebookmarks}' -r 'all()'
|
|
|
|
o "add d
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D131
|
|
|
|
│ Reviewed By: someone" default/master
|
2020-10-08 06:58:22 +03:00
|
|
|
@ "add c
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D124
|
|
|
|
│ Reviewed By: someone"
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add b
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
|
|
|
│ Differential Revision: https://phabricator.fb.com/D123
|
|
|
|
│ Reviewed By: someone"
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add secondcommit"
|
2020-10-20 03:05:23 +03:00
|
|
|
│
|
2020-10-08 06:58:22 +03:00
|
|
|
o "add initial"
|
2016-03-22 04:08:04 +03:00
|
|
|
|