mirror of
https://github.com/facebook/sapling.git
synced 2024-12-29 08:02:24 +03:00
cc2b5c04ca
Summary: There have been lots of issues with user experience related to authentication and its help messages. Just one of it: certs are configured to be used for authentication and they are invalid but the `hg cloud auth` command will provide help message about the certs but then ask to copy and paste a token from the code about interactive token obtaining. Another thing, is certs are configired to use, it was not hard to set up a token for Scm Daemon that can be still on tokens even if cloud sync uses certs. Now it is possible with `hg auth -t <token>` command Now it should be more cleaner and all the messages should be cleaner as well. Also certs related help message has been improved. Also all tests were cleaned up from the authentication except for the main test. This is to simplify the tests. Reviewed By: mitrandir77 Differential Revision: D22866731 fbshipit-source-id: 61dd4bffa6fcba39107be743fb155be0970c4266
237 lines
6.1 KiB
Perl
237 lines
6.1 KiB
Perl
#chg-compatible
|
|
|
|
$ configure dummyssh
|
|
$ disable treemanifest
|
|
$ enable amend directaccess commitcloud infinitepush rebase remotenames undo
|
|
$ setconfig infinitepush.branchpattern="re:scratch/.*"
|
|
$ setconfig commitcloud.hostname=testhost
|
|
$ setconfig visibility.enabled=true
|
|
$ setconfig experimental.evolution=obsolete
|
|
$ setconfig experimental.narrow-heads=true
|
|
$ setconfig mutation.record=true mutation.enabled=true mutation.user=test mutation.date="0 0"
|
|
$ setconfig remotefilelog.reponame=server
|
|
$ setconfig hint.ack='*'
|
|
|
|
$ newrepo server
|
|
$ setconfig infinitepush.server=yes infinitepush.indextype=disk infinitepush.storetype=disk infinitepush.reponame=testrepo
|
|
$ echo base > base
|
|
$ hg commit -Aqm base
|
|
$ hg bookmark master
|
|
|
|
Create a client with some initial commits and sync them to the cloud workspace.
|
|
|
|
$ cd $TESTTMP
|
|
$ hg clone ssh://user@dummy/server client1 -q
|
|
$ cd client1
|
|
$ setconfig commitcloud.servicetype=local commitcloud.servicelocation=$TESTTMP commitcloud.token_enforced=False
|
|
$ 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 * sec (glob)
|
|
$ drawdag << EOS
|
|
> B D # amend: A -> C -> E
|
|
> | | # rebase: B -> D
|
|
> A C E
|
|
> \|/
|
|
> Z
|
|
> |
|
|
> d20a80d4def3
|
|
> EOS
|
|
$ tglogm
|
|
o 6: c70a9bd6bfd1 'E'
|
|
|
|
|
| o 5: 6ba5de8abe43 'D'
|
|
| |
|
|
| x 4: 2d0f0af04f18 'C' (Rewritten using amend into c70a9bd6bfd1)
|
|
|/
|
|
o 1: dae3b312bb78 'Z'
|
|
|
|
|
@ 0: d20a80d4def3 'base'
|
|
|
|
$ hg cloud sync
|
|
commitcloud: synchronizing 'server' with 'user/test/default'
|
|
backing up stack rooted at dae3b312bb78
|
|
commitcloud: commits synchronized
|
|
finished in * sec (glob)
|
|
remote: pushing 4 commits:
|
|
remote: dae3b312bb78 Z
|
|
remote: 2d0f0af04f18 C
|
|
remote: 6ba5de8abe43 D
|
|
remote: c70a9bd6bfd1 E
|
|
|
|
Create another client and use it to modify the commits and create some new ones.
|
|
|
|
$ cd $TESTTMP
|
|
$ hg clone ssh://user@dummy/server client2 -q
|
|
$ cd client2
|
|
$ setconfig commitcloud.servicetype=local commitcloud.servicelocation=$TESTTMP commitcloud.token_enforced=False
|
|
$ 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'
|
|
pulling 6ba5de8abe43 c70a9bd6bfd1 from ssh://user@dummy/server
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 3 changesets with 3 changes to 3 files
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 2 files
|
|
commitcloud: commits synchronized
|
|
finished in * sec (glob)
|
|
$ tglogm
|
|
o 4: c70a9bd6bfd1 'E'
|
|
|
|
|
| o 3: 6ba5de8abe43 'D'
|
|
| |
|
|
| x 2: 2d0f0af04f18 'C' (Rewritten using amend into c70a9bd6bfd1)
|
|
|/
|
|
o 1: dae3b312bb78 'Z'
|
|
|
|
|
@ 0: d20a80d4def3 'base'
|
|
|
|
|
|
$ hg rebase -r $D -d $E
|
|
rebasing 6ba5de8abe43 "D"
|
|
$ hg up -q $Z
|
|
$ echo X > X
|
|
$ hg commit -Aqm X
|
|
$ tglogm
|
|
@ 6: dd114d9b2f9e 'X'
|
|
|
|
|
| o 5: d8fc5ae9b7ef 'D'
|
|
| |
|
|
| o 4: c70a9bd6bfd1 'E'
|
|
|/
|
|
o 1: dae3b312bb78 'Z'
|
|
|
|
|
o 0: d20a80d4def3 'base'
|
|
|
|
$ hg cloud sync
|
|
commitcloud: synchronizing 'server' with 'user/test/default'
|
|
backing up stack rooted at dae3b312bb78
|
|
commitcloud: commits synchronized
|
|
finished in * sec (glob)
|
|
remote: pushing 4 commits:
|
|
remote: dae3b312bb78 Z
|
|
remote: c70a9bd6bfd1 E
|
|
remote: d8fc5ae9b7ef D
|
|
remote: dd114d9b2f9e X
|
|
|
|
Before syncing, create a new commit in the original client
|
|
|
|
$ cd $TESTTMP/client1
|
|
$ hg up -q $E
|
|
$ echo F > F
|
|
$ hg commit -Aqm F
|
|
|
|
Also introduce some divergence by rebasing the same commit
|
|
|
|
$ hg rebase -r $D -d $Z
|
|
rebasing 6ba5de8abe43 "D"
|
|
|
|
Now cloud sync. The sets of commits should be merged.
|
|
|
|
$ tglogm
|
|
o 8: 6caded0e9807 'D'
|
|
|
|
|
| @ 7: ba83c5428cb2 'F'
|
|
| |
|
|
| o 6: c70a9bd6bfd1 'E'
|
|
|/
|
|
o 1: dae3b312bb78 'Z'
|
|
|
|
|
o 0: d20a80d4def3 'base'
|
|
|
|
$ hg cloud sync
|
|
commitcloud: synchronizing 'server' with 'user/test/default'
|
|
backing up stack rooted at dae3b312bb78
|
|
pulling d8fc5ae9b7ef dd114d9b2f9e from ssh://user@dummy/server
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 0 changes to 3 files
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 2 files
|
|
remote: pushing 4 commits:
|
|
remote: dae3b312bb78 Z
|
|
remote: c70a9bd6bfd1 E
|
|
remote: ba83c5428cb2 F
|
|
remote: 6caded0e9807 D
|
|
commitcloud: commits synchronized
|
|
finished in * sec (glob)
|
|
$ tglogm
|
|
o 10: dd114d9b2f9e 'X'
|
|
|
|
|
| o 9: d8fc5ae9b7ef 'D'
|
|
| |
|
|
+---o 8: 6caded0e9807 'D'
|
|
| |
|
|
| | @ 7: ba83c5428cb2 'F'
|
|
| |/
|
|
| o 6: c70a9bd6bfd1 'E'
|
|
|/
|
|
o 1: dae3b312bb78 'Z'
|
|
|
|
|
o 0: d20a80d4def3 'base'
|
|
|
|
|
|
Cloud sync back to the other client, it should get the same smartlog (apart from ordering).
|
|
|
|
$ cd $TESTTMP/client2
|
|
$ hg cloud sync
|
|
commitcloud: synchronizing 'server' with 'user/test/default'
|
|
pulling ba83c5428cb2 6caded0e9807 from ssh://user@dummy/server
|
|
searching for changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 0 changes to 2 files
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 3 files
|
|
commitcloud: commits synchronized
|
|
finished in * sec (glob)
|
|
$ tglogm
|
|
o 8: ba83c5428cb2 'F'
|
|
|
|
|
| o 7: 6caded0e9807 'D'
|
|
| |
|
|
| | @ 6: dd114d9b2f9e 'X'
|
|
| |/
|
|
+---o 5: d8fc5ae9b7ef 'D'
|
|
| |
|
|
o | 4: c70a9bd6bfd1 'E'
|
|
|/
|
|
o 1: dae3b312bb78 'Z'
|
|
|
|
|
o 0: d20a80d4def3 'base'
|
|
|
|
It should also have mutations made on both sides visible.
|
|
|
|
$ tglogm -r 'predecessors(all())'
|
|
o 8: ba83c5428cb2 'F'
|
|
|
|
|
| o 7: 6caded0e9807 'D'
|
|
| |
|
|
| | @ 6: dd114d9b2f9e 'X'
|
|
| |/
|
|
+---o 5: d8fc5ae9b7ef 'D'
|
|
| |
|
|
o | 4: c70a9bd6bfd1 'E'
|
|
|/
|
|
| x 3: 6ba5de8abe43 'D' (Rewritten using rebase into 6caded0e9807) (Rewritten using rebase into d8fc5ae9b7ef)
|
|
| |
|
|
| x 2: 2d0f0af04f18 'C' (Rewritten using amend into c70a9bd6bfd1)
|
|
|/
|
|
o 1: dae3b312bb78 'Z'
|
|
|
|
|
o 0: d20a80d4def3 'base'
|
|
|