mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
30eb09c931
Summary: If a user manually disconnects from Commit Cloud Sync, their next background backup will automatically reconnect them if `commitcloud.autocloudjoin` is set. Make the `autocloudjoin` setting only work if the user has never connected to a workspace before. Detect the difference between the two by leaving a `commitcloudrc` file in place after disconnecting. Reviewed By: liubov-dmitrieva Differential Revision: D13621476 fbshipit-source-id: ffccd473cb3da592e5b991dd863b8afed45dc83a
55 lines
1.8 KiB
Perl
55 lines
1.8 KiB
Perl
$ . $TESTDIR/infinitepush/library.sh
|
|
$ enable amend directaccess commitcloud infinitepush infinitepushbackup share
|
|
$ setconfig ui.ssh="python \"$TESTDIR/dummyssh\""
|
|
$ setconfig commitcloud.hostname=testhost
|
|
$ cat > $TESTTMP/.commitcloudrc <<EOF
|
|
> [commitcloud]
|
|
> user_token=xxxxx
|
|
> EOF
|
|
$ newrepo server
|
|
$ setconfig infinitepush.server=yes infinitepush.indextype=disk infinitepush.storetype=disk
|
|
$ setconfig infinitepush.reponame=testrepo
|
|
$ echo base > base
|
|
$ hg commit -Aqm base
|
|
$ cd $TESTTMP
|
|
$ hg clone ssh://user@dummy/server client1 -q
|
|
$ cd client1
|
|
$ setconfig commitcloud.servicetype=local commitcloud.servicelocation="$TESTTMP"
|
|
$ setconfig commitcloud.user_token_path="$TESTTMP"
|
|
|
|
Normally pushbackup doesn't connect to commit cloud sync
|
|
$ hg pushbackup --background
|
|
$ waitbgbackup
|
|
$ test -f .hg/store/commitcloudrc
|
|
[1]
|
|
|
|
Set autocloud join, now pushbackup does connect to commit cloud sync
|
|
$ setconfig commitcloud.autocloudjoin=true
|
|
$ hg pushbackup --background
|
|
$ waitbgbackup
|
|
$ cat .hg/store/commitcloudrc
|
|
[commitcloud]
|
|
current_workspace=user/test/default
|
|
|
|
Deliberately disconnect. Auto cloud join shouldn't make us reconect.
|
|
$ hg cloud leave
|
|
#commitcloud this repository is now disconnected from commit cloud
|
|
$ cat .hg/store/commitcloudrc
|
|
[commitcloud]
|
|
disconnected=true
|
|
$ hg pushbackup --background
|
|
$ waitbgbackup
|
|
$ cat .hg/store/commitcloudrc
|
|
[commitcloud]
|
|
disconnected=true
|
|
|
|
But we can manually reconnect
|
|
$ 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
|
|
$ cat .hg/store/commitcloudrc
|
|
[commitcloud]
|
|
current_workspace=user/test/default
|
|
|