sapling/tests/test-fb-hgext-commitcloud-sync-omission.t
Liubov Dmitrieva ac401b9d9f commitcloud: trigger a backup to a secondary storage after cloud sync in the background
Summary:
We can't run in parallel at the moment as the log file and the lock file are
shared.

Every path maintains independent backup state (the previous diff).

The secondary backup state doesn't affect smartlog (only the main one)

The issue with this approach is that we maintain backup lock a bit longer.

Unfortunately, the progress in smartlog doesn't show anything about the second backup.

I added 'finished', it makes it easier to compare in the logs.

Reviewed By: markbt

Differential Revision: D14149399

fbshipit-source-id: f90e8aac6cb8dee53d5c7468bd6adba067e13362
2019-02-20 15:36:29 -08:00

699 lines
21 KiB
Perl

#require jq
$ enable smartlog
$ cat >> $HGRCPATH << EOF
> [extensions]
> amend =
> commitcloud =
> infinitepush =
> infinitepushbackup =
> rebase =
> remotenames =
> share =
> [ui]
> ssh = python "$TESTDIR/dummyssh"
> [infinitepush]
> branchpattern = re:scratch/.*
> [infinitepushbackup]
> enablestatus = true
> [commitcloud]
> hostname = testhost
> max_sync_age = 14
> [experimental]
> evolution = createmarkers, allowunstable
> EOF
$ hg init server
$ cd server
$ cat >> .hg/hgrc << EOF
> [infinitepush]
> server = yes
> indextype = disk
> storetype = disk
> reponame = testrepo
> EOF
$ touch base
$ hg commit -Aqm base
$ hg phase -p .
$ cd ..
Make shared part of config
$ cat >> shared.rc << EOF
> [commitcloud]
> servicetype = local
> servicelocation = $TESTTMP
> user_token_path = $TESTTMP
> auth_help = visit https://localhost/oauth to generate a registration token
> education_page = https://someurl.com/wiki/CommitCloud
> owner_team = The Test Team @ FB
> EOF
Utility script to dump commit cloud metadata
$ cat > dumpcommitcloudmetadata.py <<EOF
> import json
> ccmd = json.load(open("$TESTTMP/commitcloudservicedb"))
> print("version: %s" % ccmd["version"])
> print("bookmarks:")
> for bookmark, node in sorted(ccmd["bookmarks"].items()):
> print(" %s => %s" % (bookmark, node))
> print("heads:")
> for head in (ccmd["heads"]):
> print(" %s" % head)
> EOF
Utility function to run HG with a fake date
$ hgfakedate() {
> fakedate="$1"
> shift
> hg --config extensions.fakedate="$TESTDIR/fakedate.py" --config fakedate.date="$fakedate" "$@"
> }
Make a clone of the server
$ hg clone ssh://user@dummy/server client1 -q
$ cd client1
$ cat ../shared.rc >> .hg/hgrc
$ hg cloud auth -t xxxxxx
setting authentication token
authentication successful
Connect the first client
$ 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)
Make some stacks with various dates. We will use Feb 1990 for these tests.
- Old stack
$ hg up -q 0
$ touch oldstack-feb1
$ hg commit -Aqm oldstack-feb1 --config devel.default-date="1990-02-01T00:00Z"
$ hg book -i oldbook
$ touch oldstack-feb4
$ hg commit -Aqm oldstack-feb4 --config devel.default-date="1990-02-04T12:00Z"
- Middle stack
$ hg up -q 0
$ touch midstack-feb7
$ hg commit -Aqm midstack-feb7 --config devel.default-date="1990-02-07T00:00Z"
$ hg book -i midbook
$ touch midstack-feb9
$ hg commit -Aqm midstack-feb9 --config devel.default-date="1990-02-09T12:00Z"
- New stack
$ hg up -q 0
$ touch newstack-feb13
$ hg commit -Aqm newstack-feb13 --config devel.default-date="1990-02-13T00:00Z"
$ hg book -i newbook
$ touch newstack-feb15
$ hg commit -Aqm newstack-feb15 --config devel.default-date="1990-02-15T12:00Z"
Write node metadata out to disk (this is loaded by the commit cloud local service
implementation)
$ hg log -r "all()" -Tjson >> $TESTTMP/nodedata
Sync these to commit cloud - they all get pushed even though they are old
$ hgfakedate 1990-02-28T00:00Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
backing up stack rooted at 1f9ebd6d1390
remote: pushing 2 commits:
remote: 1f9ebd6d1390 oldstack-feb1
remote: d16408588b2d oldstack-feb4
backing up stack rooted at 1c1b7955142c
remote: pushing 2 commits:
remote: 1c1b7955142c midstack-feb7
remote: d133b886da68 midstack-feb9
backing up stack rooted at 56a352317b67
remote: pushing 2 commits:
remote: 56a352317b67 newstack-feb13
remote: 7f958333fe84 newstack-feb15
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
@ 6: 7f958333fe84 draft 'newstack-feb15'
|
o 5: 56a352317b67 draft 'newstack-feb13' newbook
|
| o 4: d133b886da68 draft 'midstack-feb9'
| |
| o 3: 1c1b7955142c draft 'midstack-feb7' midbook
|/
| o 2: d16408588b2d draft 'oldstack-feb4'
| |
| o 1: 1f9ebd6d1390 draft 'oldstack-feb1' oldbook
|/
o 0: df4f53cec30a public 'base'
$ python $TESTTMP/dumpcommitcloudmetadata.py
version: 2
bookmarks:
midbook => 1c1b7955142cd8a3beec705c9cca9d775ecb0fa8
newbook => 56a352317b67ae3d5abd5f6c71ec0df3aa98fe97
oldbook => 1f9ebd6d1390ebc603e401171eda0c444a0f8754
heads:
d16408588b2d047410f99c45e425bf97923e28f2
d133b886da6874fe25998d26ae1b2b8528b07c59
7f958333fe845fe5cbc60d9d96e3d68a262d684c
Create a new client that isn't connected yet
$ cd ..
$ hg clone ssh://user@dummy/server client2 -q
$ cat shared.rc >> client2/.hg/hgrc
Connect to commit cloud
$ cd client2
$ hgfakedate 1990-02-20T16:00Z 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 from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files (+1 heads)
1f9ebd6d1390ebc603e401171eda0c444a0f8754 not found, omitting oldbook bookmark
new changesets 1c1b7955142c:7f958333fe84
(run 'hg heads' to see heads, 'hg merge' to merge)
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 4: 7f958333fe84 draft 'newstack-feb15'
|
o 3: 56a352317b67 draft 'newstack-feb13' newbook
|
| o 2: d133b886da68 draft 'midstack-feb9'
| |
| o 1: 1c1b7955142c draft 'midstack-feb7' midbook
|/
@ 0: df4f53cec30a public 'base'
Create a new commit
$ hg up 0
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ touch client2-file1
$ hg commit -Aqm client2-feb28 --config devel.default-date="1990-02-28T01:00Z"
$ (cat $TESTTMP/nodedata ; hg log -r . -Tjson) | jq -s add > $TESTTMP/nodedata.new
$ mv $TESTTMP/nodedata.new $TESTTMP/nodedata
$ hgfakedate 1990-02-28T01:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
backing up stack rooted at ff52de2f760c
remote: pushing 1 commit:
remote: ff52de2f760c client2-feb28
#commitcloud commits synchronized
finished in * (glob)
Sync these commits to the first client - it has everything
$ cd ../client1
$ hgfakedate 1990-02-28T01:02Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
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 (+1 heads)
new changesets ff52de2f760c
(run 'hg heads .' to see heads, 'hg merge' to merge)
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 7: ff52de2f760c draft 'client2-feb28'
|
| @ 6: 7f958333fe84 draft 'newstack-feb15'
| |
| o 5: 56a352317b67 draft 'newstack-feb13' newbook
|/
| o 4: d133b886da68 draft 'midstack-feb9'
| |
| o 3: 1c1b7955142c draft 'midstack-feb7' midbook
|/
| o 2: d16408588b2d draft 'oldstack-feb4'
| |
| o 1: 1f9ebd6d1390 draft 'oldstack-feb1' oldbook
|/
o 0: df4f53cec30a public 'base'
Second client can still sync
$ cd ../client2
$ hgfakedate 1990-02-28T01:22Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
@ 5: ff52de2f760c draft 'client2-feb28'
|
| o 4: 7f958333fe84 draft 'newstack-feb15'
| |
| o 3: 56a352317b67 draft 'newstack-feb13' newbook
|/
| o 2: d133b886da68 draft 'midstack-feb9'
| |
| o 1: 1c1b7955142c draft 'midstack-feb7' midbook
|/
o 0: df4f53cec30a public 'base'
$ python $TESTTMP/dumpcommitcloudmetadata.py
version: 3
bookmarks:
midbook => 1c1b7955142cd8a3beec705c9cca9d775ecb0fa8
newbook => 56a352317b67ae3d5abd5f6c71ec0df3aa98fe97
oldbook => 1f9ebd6d1390ebc603e401171eda0c444a0f8754
heads:
d16408588b2d047410f99c45e425bf97923e28f2
d133b886da6874fe25998d26ae1b2b8528b07c59
7f958333fe845fe5cbc60d9d96e3d68a262d684c
ff52de2f760c67fa6f89273ca7f770396a3c81c4
Add a new commit to a stack on the first client
$ cd ../client1
$ touch newstack-feb28
$ hg commit -Aqm newstack-feb28 --config devel.default-date="1990-02-28T02:00Z"
$ (cat $TESTTMP/nodedata ; hg log -r . -Tjson) | jq -s add > $TESTTMP/nodedata.new
$ mv $TESTTMP/nodedata.new $TESTTMP/nodedata
$ hgfakedate 1990-02-28T02:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
backing up stack rooted at 56a352317b67
remote: pushing 3 commits:
remote: 56a352317b67 newstack-feb13
remote: 7f958333fe84 newstack-feb15
remote: 46f8775ee5d4 newstack-feb28
#commitcloud commits synchronized
finished in * (glob)
$ python $TESTTMP/dumpcommitcloudmetadata.py
version: 4
bookmarks:
midbook => 1c1b7955142cd8a3beec705c9cca9d775ecb0fa8
newbook => 56a352317b67ae3d5abd5f6c71ec0df3aa98fe97
oldbook => 1f9ebd6d1390ebc603e401171eda0c444a0f8754
heads:
d16408588b2d047410f99c45e425bf97923e28f2
d133b886da6874fe25998d26ae1b2b8528b07c59
ff52de2f760c67fa6f89273ca7f770396a3c81c4
46f8775ee5d479eed945b5186929bd046f116176
Second client syncs that in, but still leaves the old commits missing
$ cd ../client2
$ hgfakedate 1990-02-28T02:02Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
pulling from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 3 files
new changesets 46f8775ee5d4
(run 'hg update' to get a working copy)
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 6: 46f8775ee5d4 draft 'newstack-feb28'
|
| @ 5: ff52de2f760c draft 'client2-feb28'
| |
o | 4: 7f958333fe84 draft 'newstack-feb15'
| |
o | 3: 56a352317b67 draft 'newstack-feb13' newbook
|/
| o 2: d133b886da68 draft 'midstack-feb9'
| |
| o 1: 1c1b7955142c draft 'midstack-feb7' midbook
|/
o 0: df4f53cec30a public 'base'
$ python $TESTTMP/dumpcommitcloudmetadata.py
version: 4
bookmarks:
midbook => 1c1b7955142cd8a3beec705c9cca9d775ecb0fa8
newbook => 56a352317b67ae3d5abd5f6c71ec0df3aa98fe97
oldbook => 1f9ebd6d1390ebc603e401171eda0c444a0f8754
heads:
d16408588b2d047410f99c45e425bf97923e28f2
d133b886da6874fe25998d26ae1b2b8528b07c59
ff52de2f760c67fa6f89273ca7f770396a3c81c4
46f8775ee5d479eed945b5186929bd046f116176
Commit cloud keeps infinitepush backup state up-to-date. Ensure it hasn't included the omitted head.
$ grep -r d16408588b2d047410f99c45e425bf97923e28f2 .hg/infinitepushbackups
[1]
First client add a new commit to the old stack
$ cd ../client1
$ hg up 2
2 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ touch oldstack-mar4
$ hg commit -Aqm oldstack-mar4 --config devel.default-date="1990-03-04T03:00Z"
$ (cat $TESTTMP/nodedata ; hg log -r . -Tjson) | jq -s add > $TESTTMP/nodedata.new
$ mv $TESTTMP/nodedata.new $TESTTMP/nodedata
$ hgfakedate 1990-03-04T03:02Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
backing up stack rooted at 1f9ebd6d1390
remote: pushing 3 commits:
remote: 1f9ebd6d1390 oldstack-feb1
remote: d16408588b2d oldstack-feb4
remote: 2b8dce7bd745 oldstack-mar4
#commitcloud commits synchronized
finished in * (glob)
$ python $TESTTMP/dumpcommitcloudmetadata.py
version: 5
bookmarks:
midbook => 1c1b7955142cd8a3beec705c9cca9d775ecb0fa8
newbook => 56a352317b67ae3d5abd5f6c71ec0df3aa98fe97
oldbook => 1f9ebd6d1390ebc603e401171eda0c444a0f8754
heads:
d133b886da6874fe25998d26ae1b2b8528b07c59
ff52de2f760c67fa6f89273ca7f770396a3c81c4
46f8775ee5d479eed945b5186929bd046f116176
2b8dce7bd745e54f2cea9d8c630d97264537cbad
Second client syncs the old stack in, and now has the bookmark
$ cd ../client2
$ hgfakedate 1990-03-04T03:03Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
pulling from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files (+1 heads)
new changesets 1f9ebd6d1390:2b8dce7bd745
(run 'hg heads .' to see heads, 'hg merge' to merge)
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 9: 2b8dce7bd745 draft 'oldstack-mar4'
|
o 8: d16408588b2d draft 'oldstack-feb4'
|
o 7: 1f9ebd6d1390 draft 'oldstack-feb1' oldbook
|
| o 6: 46f8775ee5d4 draft 'newstack-feb28'
| |
+---@ 5: ff52de2f760c draft 'client2-feb28'
| |
| o 4: 7f958333fe84 draft 'newstack-feb15'
| |
| o 3: 56a352317b67 draft 'newstack-feb13' newbook
|/
| o 2: d133b886da68 draft 'midstack-feb9'
| |
| o 1: 1c1b7955142c draft 'midstack-feb7' midbook
|/
o 0: df4f53cec30a public 'base'
$ python $TESTTMP/dumpcommitcloudmetadata.py
version: 5
bookmarks:
midbook => 1c1b7955142cd8a3beec705c9cca9d775ecb0fa8
newbook => 56a352317b67ae3d5abd5f6c71ec0df3aa98fe97
oldbook => 1f9ebd6d1390ebc603e401171eda0c444a0f8754
heads:
d133b886da6874fe25998d26ae1b2b8528b07c59
ff52de2f760c67fa6f89273ca7f770396a3c81c4
46f8775ee5d479eed945b5186929bd046f116176
2b8dce7bd745e54f2cea9d8c630d97264537cbad
Create a new client that isn't connected yet
$ cd ..
$ hg clone ssh://user@dummy/server client3 -q
$ cat shared.rc >> client3/.hg/hgrc
Connect to commit cloud
$ cd client3
$ hgfakedate 1990-03-05T12:00Z 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 from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files (+1 heads)
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files (+1 heads)
1c1b7955142cd8a3beec705c9cca9d775ecb0fa8 not found, omitting midbook bookmark
new changesets ff52de2f760c:2b8dce7bd745
(run 'hg heads' to see heads, 'hg merge' to merge)
#commitcloud commits synchronized
finished in * (glob)
$ hgfakedate 1990-03-05T12:00Z smartlog -T '{rev}: {node|short} {desc} {bookmarks}' --config infinitepushbackup.autobackup=true
o 7: 2b8dce7bd745 oldstack-mar4
|
o 6: d16408588b2d oldstack-feb4
|
o 5: 1f9ebd6d1390 oldstack-feb1 oldbook
|
| o 4: 46f8775ee5d4 newstack-feb28
| |
| o 3: 7f958333fe84 newstack-feb15
| |
| o 2: 56a352317b67 newstack-feb13 newbook
|/
| o 1: ff52de2f760c client2-feb28
|/
@ 0: df4f53cec30a base
hint[commitcloud-old-commits]: some older commits or bookmarks have not been synced to this repo
(run `hg cloud sl` to see all of the commits in your workspace)
(run `hg pull -r HASH` to fetch commits by hash)
(run `hg cloud sync --full` to fetch everything - this may be slow)
hint[hint-ack]: use 'hg hint --ack commitcloud-old-commits' to silence these hints
Move one of these bookmarks in the first client.
$ cd ../client1
$ hg book -f -r 4 oldbook
$ hgfakedate 1990-03-05T12:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
Do a sync in the new client - the bookmark is left where it was
$ cd ../client3
$ hgfakedate 1990-03-05T12:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
d133b886da6874fe25998d26ae1b2b8528b07c59 not found, omitting oldbook bookmark
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 7: 2b8dce7bd745 draft 'oldstack-mar4'
|
o 6: d16408588b2d draft 'oldstack-feb4'
|
o 5: 1f9ebd6d1390 draft 'oldstack-feb1' oldbook
|
| o 4: 46f8775ee5d4 draft 'newstack-feb28'
| |
| o 3: 7f958333fe84 draft 'newstack-feb15'
| |
| o 2: 56a352317b67 draft 'newstack-feb13' newbook
|/
| o 1: ff52de2f760c draft 'client2-feb28'
|/
@ 0: df4f53cec30a public 'base'
Move the bookmark locally - this still gets synced ok.
$ hg book -f -r 3 oldbook
$ tglogp
o 7: 2b8dce7bd745 draft 'oldstack-mar4'
|
o 6: d16408588b2d draft 'oldstack-feb4'
|
o 5: 1f9ebd6d1390 draft 'oldstack-feb1'
|
| o 4: 46f8775ee5d4 draft 'newstack-feb28'
| |
| o 3: 7f958333fe84 draft 'newstack-feb15' oldbook
| |
| o 2: 56a352317b67 draft 'newstack-feb13' newbook
|/
| o 1: ff52de2f760c draft 'client2-feb28'
|/
@ 0: df4f53cec30a public 'base'
$ hgfakedate 1990-03-05T12:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
$ cd ../client1
$ hgfakedate 1990-03-05T12:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
@ 9: 2b8dce7bd745 draft 'oldstack-mar4'
|
| o 8: 46f8775ee5d4 draft 'newstack-feb28'
| |
| | o 7: ff52de2f760c draft 'client2-feb28'
| | |
| o | 6: 7f958333fe84 draft 'newstack-feb15' oldbook
| | |
| o | 5: 56a352317b67 draft 'newstack-feb13' newbook
| |/
| | o 4: d133b886da68 draft 'midstack-feb9'
| | |
| | o 3: 1c1b7955142c draft 'midstack-feb7' midbook
| |/
o | 2: d16408588b2d draft 'oldstack-feb4'
| |
o | 1: 1f9ebd6d1390 draft 'oldstack-feb1'
|/
o 0: df4f53cec30a public 'base'
A full sync pulls the old commits in
$ cd ../client3
$ hgfakedate 1990-03-05T12:01Z cloud sync --full
#commitcloud synchronizing 'server' with 'user/test/default'
pulling from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files (+1 heads)
new changesets 1c1b7955142c:d133b886da68
(run 'hg heads .' to see heads, 'hg merge' to merge)
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 9: d133b886da68 draft 'midstack-feb9'
|
o 8: 1c1b7955142c draft 'midstack-feb7' midbook
|
| o 7: 2b8dce7bd745 draft 'oldstack-mar4'
| |
| o 6: d16408588b2d draft 'oldstack-feb4'
| |
| o 5: 1f9ebd6d1390 draft 'oldstack-feb1'
|/
| o 4: 46f8775ee5d4 draft 'newstack-feb28'
| |
| o 3: 7f958333fe84 draft 'newstack-feb15' oldbook
| |
| o 2: 56a352317b67 draft 'newstack-feb13' newbook
|/
| o 1: ff52de2f760c draft 'client2-feb28'
|/
@ 0: df4f53cec30a public 'base'
Create a new client that isn't connected yet
$ cd ..
$ hg clone ssh://user@dummy/server client4 -q
$ cat shared.rc >> client4/.hg/hgrc
A part sync omitting everything
$ cd ./client4
$ hgfakedate 1990-04-01T12:01Z 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'
* not found, omitting * bookmark (glob)
* not found, omitting * bookmark (glob)
* not found, omitting * bookmark (glob)
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
@ 0: df4f53cec30a public 'base'
Remove some of the bookmarks
$ cd ../client1
$ hg book --delete newbook
$ hg book --delete oldbook
$ hg cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
Check that it doesn't break cloud sync
$ cd ../client4
$ hgfakedate 1990-04-01T12:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
Pull in some of the commits by setting max age manually
$ hgfakedate 1990-04-01T12:01Z cloud sync --config commitcloud.max_sync_age=30
#commitcloud synchronizing 'server' with 'user/test/default'
pulling from ssh://user@dummy/server
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 3 files
new changesets 1f9ebd6d1390:2b8dce7bd745
(run 'hg update' to get a working copy)
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 3: 2b8dce7bd745 draft 'oldstack-mar4'
|
o 2: d16408588b2d draft 'oldstack-feb4'
|
o 1: 1f9ebd6d1390 draft 'oldstack-feb1'
|
@ 0: df4f53cec30a public 'base'
Create a bookmark with the same name as an omitted bookmark
$ hg book -r tip midbook
$ hgfakedate 1990-04-01T12:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
Sync these changes to client3 - the deleted bookmarks are removed and the
other bookmark is treated like a move.
$ cd ../client3
$ hgfakedate 1990-04-01T12:01Z cloud sync
#commitcloud synchronizing 'server' with 'user/test/default'
#commitcloud commits synchronized
finished in * (glob)
$ tglogp
o 9: d133b886da68 draft 'midstack-feb9'
|
o 8: 1c1b7955142c draft 'midstack-feb7'
|
| o 7: 2b8dce7bd745 draft 'oldstack-mar4' midbook
| |
| o 6: d16408588b2d draft 'oldstack-feb4'
| |
| o 5: 1f9ebd6d1390 draft 'oldstack-feb1'
|/
| o 4: 46f8775ee5d4 draft 'newstack-feb28'
| |
| o 3: 7f958333fe84 draft 'newstack-feb15'
| |
| o 2: 56a352317b67 draft 'newstack-feb13'
|/
| o 1: ff52de2f760c draft 'client2-feb28'
|/
@ 0: df4f53cec30a public 'base'