mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
5d7f245f80
Summary: Made changes to the commit cloud sync to support remote bookmarks. Here I only declared steps of future remote bookmarks sync and will add the implementation further in the stack. Processing a merge state between cloud remote bookmarks state, last sync and local state is done earlier in the workflow, than, for example, for local bookmarks, because to update remote bookmarks we may need to fetch new public heads from the server and so need to get them first. Reviewed By: mitrandir77 Differential Revision: D15898740 fbshipit-source-id: ca77f66b0f1244a811b4b549e5b189c5f1772708
143 lines
5.3 KiB
Perl
143 lines
5.3 KiB
Perl
$ enable commitcloud infinitepush amend rebase
|
|
$ setconfig ui.ssh="python \"$TESTDIR/dummyssh\""
|
|
$ setconfig commitcloud.hostname=testhost
|
|
$ setconfig remotefilelog.reponame=testrepo
|
|
$ setconfig mutation.record=true mutation.enabled=true
|
|
$ setconfig extensions.treemanifest=!
|
|
$ setconfig visibility.enabled=true
|
|
|
|
$ newrepo server
|
|
$ setconfig infinitepush.server=yes infinitepush.reponame=testrepo
|
|
$ setconfig infinitepush.indextype=disk infinitepush.storetype=disk
|
|
$ setconfig treemanifest.server=True
|
|
$ touch base
|
|
$ hg commit -Aqm base
|
|
$ hg phase -p .
|
|
$ cd ..
|
|
|
|
$ hg clone ssh://user@dummy/server client1 -q
|
|
$ cd client1
|
|
$ setconfig commitcloud.servicetype=local
|
|
$ setconfig commitcloud.servicelocation="$TESTTMP"
|
|
$ setconfig commitcloud.user_token_path="$TESTTMP"
|
|
$ setconfig extensions.extralog="$TESTDIR/extralog.py"
|
|
$ setconfig extralog.events="visibility, commitcloud_sync"
|
|
$ setconfig extensions.lockdelay="$TESTDIR/lockdelay.py"
|
|
$ hg cloud auth -t XXXXXX
|
|
visibility: read 0 heads:
|
|
setting authentication token
|
|
authentication successful
|
|
$ hg cloud join
|
|
visibility: read 0 heads:
|
|
commitcloud: this repository is now connected to the 'user/test/default' workspace for the 'testrepo' repo
|
|
commitcloud: synchronizing 'testrepo' with 'user/test/default'
|
|
commitcloud_sync: synced to workspace user/test/default version 1: 0 heads (0 omitted), 0 bookmarks (0 omitted), 0 remote bookmarks
|
|
commitcloud: commits synchronized
|
|
finished in 0.00 sec
|
|
$ cd ..
|
|
|
|
$ hg clone ssh://user@dummy/server client2 -q
|
|
$ cd client2
|
|
$ setconfig commitcloud.servicetype=local
|
|
$ setconfig commitcloud.servicelocation="$TESTTMP"
|
|
$ setconfig commitcloud.user_token_path="$TESTTMP"
|
|
$ setconfig extensions.extralog="$TESTDIR/extralog.py"
|
|
$ setconfig extralog.events="visibility, commitcloud_sync"
|
|
$ setconfig extensions.lockdelay="$TESTDIR/lockdelay.py"
|
|
$ hg cloud auth -t XXXXXX
|
|
visibility: read 0 heads:
|
|
updating authentication token
|
|
authentication successful
|
|
$ hg cloud join
|
|
visibility: read 0 heads:
|
|
commitcloud: this repository is now connected to the 'user/test/default' workspace for the 'testrepo' repo
|
|
commitcloud: synchronizing 'testrepo' with 'user/test/default'
|
|
commitcloud_sync: synced to workspace user/test/default version 1: 0 heads (0 omitted), 0 bookmarks (0 omitted), 0 remote bookmarks
|
|
commitcloud: commits synchronized
|
|
finished in 0.00 sec
|
|
$ cd ..
|
|
|
|
$ cd client1
|
|
$ touch 1
|
|
$ hg commit -Aqm commit1
|
|
visibility: read 0 heads:
|
|
visibility: removed 0 heads []; added 1 heads [79089e97b9e7]
|
|
visibility: wrote 1 heads: 79089e97b9e7
|
|
$ hg cloud sync
|
|
visibility: read 1 heads: 79089e97b9e7
|
|
commitcloud: synchronizing 'testrepo' with 'user/test/default'
|
|
backing up stack rooted at 79089e97b9e7
|
|
remote: pushing 1 commit:
|
|
remote: 79089e97b9e7 commit1
|
|
commitcloud_sync: synced to workspace user/test/default version 2: 1 heads (0 omitted), 0 bookmarks (0 omitted), 0 remote bookmarks
|
|
commitcloud: commits synchronized
|
|
finished in 0.00 sec
|
|
|
|
$ cd ../client2
|
|
|
|
Start a background sync to pull in the changes from the other repo.
|
|
|
|
$ touch $TESTTMP/wlockpre1
|
|
$ HGPREWLOCKFILE=$TESTTMP/wlockpre1 hg cloud sync > $TESTTMP/bgsync.out 2>&1 &
|
|
|
|
While that is getting started, create a new commit locally.
|
|
|
|
$ sleep 1
|
|
$ touch 2
|
|
$ hg commit -Aqm commit2
|
|
visibility: read 0 heads:
|
|
visibility: removed 0 heads []; added 1 heads [1292cc1f1c17]
|
|
visibility: wrote 1 heads: 1292cc1f1c17
|
|
$ hg up -q 0
|
|
visibility: read 1 heads: 1292cc1f1c17
|
|
$ tglogp
|
|
visibility: read 1 heads: 1292cc1f1c17
|
|
o 1: 1292cc1f1c17 draft 'commit2'
|
|
|
|
|
@ 0: df4f53cec30a public 'base'
|
|
|
|
|
|
Let the background sync we started earlier continue, and start a concurrent cloud sync.
|
|
|
|
$ rm $TESTTMP/wlockpre1
|
|
$ hg cloud sync
|
|
visibility: read 1 heads: 1292cc1f1c17
|
|
commitcloud: synchronizing 'testrepo' with 'user/test/default'
|
|
backing up stack rooted at 1292cc1f1c17
|
|
remote: pushing 1 commit:
|
|
remote: 1292cc1f1c17 commit2
|
|
pulling 79089e97b9e7
|
|
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)
|
|
visibility: removed 0 heads []; added 1 heads [79089e97b9e7]
|
|
commitcloud_sync: synced to workspace user/test/default version 2: 1 heads (0 omitted), 0 bookmarks (0 omitted), 0 remote bookmarks
|
|
commitcloud_sync: synced to workspace user/test/default version 3: 2 heads (0 omitted), 0 bookmarks (0 omitted), 0 remote bookmarks
|
|
visibility: wrote 2 heads: 79089e97b9e7, 1292cc1f1c17
|
|
new changesets 79089e97b9e7
|
|
commitcloud: commits synchronized
|
|
finished in 0.00 sec
|
|
|
|
$ tglogp
|
|
visibility: read 2 heads: 79089e97b9e7, 1292cc1f1c17
|
|
o 2: 79089e97b9e7 draft 'commit1'
|
|
|
|
|
| o 1: 1292cc1f1c17 draft 'commit2'
|
|
|/
|
|
@ 0: df4f53cec30a public 'base'
|
|
|
|
Wait for the background backup to finish and check its output.
|
|
|
|
$ hg debugwaitbackup
|
|
visibility: read 2 heads: 79089e97b9e7, 1292cc1f1c17
|
|
$ cat $TESTTMP/bgsync.out
|
|
visibility: read 0 heads:
|
|
commitcloud: synchronizing 'testrepo' with 'user/test/default'
|
|
visibility: read 1 heads: 1292cc1f1c17
|
|
abort: commitcloud: failed to synchronize commits: 'repo changed while backing up'
|
|
(please retry 'hg cloud sync')
|
|
(please contact the Source Control Team if this error persists)
|