sapling/eden/scm/tests/test-commitcloud-checkoutlocations-update.t

81 lines
2.7 KiB
Perl
Raw Normal View History

#chg-compatible
$ configure dummyssh
$ enable infinitepush commitcloud
$ enable amend
$ setconfig infinitepush.branchpattern="re:scratch/.*"
$ setconfig commitcloud.hostname=testhost
$ setconfig experimental.graphstyle.grandparent=2.
$ setconfig templatealias.sl_cloud="\"{truncatelonglines(node, 6)} {ifeq(phase, 'public', '(public)', '')} {ifeq(phase, 'draft', author, '')} {date|isodate} {bookmarks}\\n{desc|firstline}\\n \""
$ setconfig remotefilelog.reponame=server
$ hg init server
$ cd server
$ setconfig infinitepush.server=yes infinitepush.indextype=disk infinitepush.storetype=disk infinitepush.reponame=testrepo
Make the clone of the server
$ hg clone ssh://user@dummy/server client -q
$ cd client
$ setconfig commitcloud.servicetype=local commitcloud.servicelocation="$TESTTMP" commitcloud.token_enforced=False
Enable syncing checkout locations
$ setconfig commitcloud.synccheckoutlocations=True
Utility script to dump json of the checkoutlocation being sent
$ cat > $TESTTMP/dumpdata.py <<EOF
> import json
> import os
> testtmp = os.environ['TESTTMP']
> path = os.path.join(testtmp, "checkoutlocations")
> location = json.load(open(path))
> print("repo_name: %s" % location["repo_name"])
> print("workspace: %s" % location["workspace"])
> print("hostname: %s" % location["hostname"])
> print("commit: %s" % location["commit"])
> print("shared_path: %s" % location["shared_path"])
> print("checkout_path: %s" % location["checkout_path"])
> print("unixname: %s" % location["unixname"])
> EOF
Make a random commit
$ echo a > a
$ hg add a
$ hg commit -m"commit"
Check that the checkout locations are synced after the commit is made
$ python $TESTTMP/dumpdata.py
repo_name: server
workspace: user/test/default
hostname: * (glob)
commit: bb757c825e81d15d6959648d8f055c8e5958310f
shared_path: $TESTTMP/server/client/.hg
checkout_path: $TESTTMP/server/client/.hg
unixname: test
Make changes and amend
$ echo aa > a
$ hg amend
Check that the checkout locations are synced after the amend is made
$ python $TESTTMP/dumpdata.py
repo_name: server
workspace: user/test/default
hostname: * (glob)
commit: b7ad20e4fc527a09952053de497603c0a8eafd0d
shared_path: $TESTTMP/server/client/.hg
checkout_path: $TESTTMP/server/client/.hg
unixname: test
Checkout the old commit and see if the location is synced
$ hg checkout bb757c825e81d15d6959648d8f055c8e5958310f --hidden
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ python $TESTTMP/dumpdata.py
repo_name: server
workspace: user/test/default
hostname: * (glob)
commit: bb757c825e81d15d6959648d8f055c8e5958310f
shared_path: $TESTTMP/server/client/.hg
checkout_path: $TESTTMP/server/client/.hg
unixname: test