mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
8bd55436a4
Summary: This enforces certain selective pull logic in core. Namely, rewrite `pull -r X` to `pull -r X -B master`. Unlike selectivepull in remotenames, `pull` (pulls everything) won't be rewritten to `pull -B master` (which pulls less commits and names). Therefore this change always adds more commits to pull, and therefore should not break existing users. Eventually we want the "not pulling everything" behavior, but right now this just fixes `pull -r X` to also update important remote names. Reviewed By: markbt Differential Revision: D20531121 fbshipit-source-id: af457b5ddb1265b61956eb2ee6afb7b7208293e0
76 lines
5.5 KiB
Perl
76 lines
5.5 KiB
Perl
#require py2
|
|
$ . "$TESTDIR/helpers-wireprotologging.sh"
|
|
$ disable treemanifest
|
|
$ CACHEDIR="$TESTTMP/hgcache"
|
|
|
|
$ configure dummyssh
|
|
$ enable remotefilelog
|
|
$ setconfig remotefilelog.cachepath="$CACHEDIR"
|
|
|
|
$ hg init repo
|
|
$ capturewireprotologs
|
|
$ cd repo
|
|
$ setconfig remotefilelog.server=true
|
|
$ cd ..
|
|
$ hg clone ssh://user@dummy/repo --shallow repo-clone -q
|
|
$ cd repo
|
|
$ setconfig wireproto.logrequests=batch,branchmap,getbundle,hello,listkeys,lookup,between,unbundle
|
|
$ setconfig wireproto.loggetfiles=true
|
|
$ echo a > a && hg add a && hg ci -m a
|
|
$ cd ../repo-clone
|
|
$ hg pull 2>&1 | grep wireproto_requests
|
|
remote: wireproto_requests: (args=[], command=hello, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['0000000000000000000000000000000000000000-0000000000000000000000000000000000000000'], command=between, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=[], command=batch, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=[('bookmarks', '1'), ('bundlecaps', 'HG20,$USUAL_BUNDLE2_CAPS$%0Aremotefilelog%3DTrue,remotefilelog'), ('cg', '1'), ('common', '0000000000000000000000000000000000000000'), ('heads', 'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b'), ('listkeys', 'bookmarks'), ('phases', '1')], command=getbundle, duration=*, reponame=unknown, responselen=*) (glob)
|
|
$ cd ../repo
|
|
$ echo b > b && hg add b && hg ci -m b
|
|
$ echo c > c && hg add c && hg ci -m c
|
|
$ cd ../repo-clone
|
|
$ hg pull 2>&1 | grep wireproto_requests
|
|
remote: wireproto_requests: (args=[], command=hello, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['0000000000000000000000000000000000000000-0000000000000000000000000000000000000000'], command=between, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=[], command=batch, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=[('bookmarks', '1'), ('bundlecaps', 'HG20,$USUAL_BUNDLE2_CAPS$%0Aremotefilelog%3DTrue,remotefilelog'), ('cg', '1'), ('common', 'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b'), ('heads', '177f92b773850b59254aa5e923436f921b55483b'), ('listkeys', 'bookmarks'), ('phases', '1')], command=getbundle, duration=*, reponame=unknown, responselen=*) (glob)
|
|
$ hg up tip -q
|
|
|
|
Looks like `ui.warn()` after getfiles might not make it's way to client hg. Let's read from file
|
|
$ grep 'getpack' $TESTTMP/loggedrequests
|
|
wireproto_requests: (args=[*], command=getpack*, duration=*, reponame=unknown, responselen=*) (glob)
|
|
$ echo cc > c && hg ci -m c
|
|
$ hg push --force 2>&1 | grep wireproto_requests
|
|
remote: wireproto_requests: (args=[], command=hello, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['0000000000000000000000000000000000000000-0000000000000000000000000000000000000000'], command=between, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=[], command=batch, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['phases'], command=listkeys, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['bookmarks'], command=listkeys, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['666f726365'], command=unbundle, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['phases'], command=listkeys, duration=*, reponame=unknown, responselen=*) (glob)
|
|
$ hg pull -r ololo 2>&1 | grep wireproto_requests
|
|
remote: wireproto_requests: (args=[], command=hello, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['0000000000000000000000000000000000000000-0000000000000000000000000000000000000000'], command=between, duration=*, reponame=unknown, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['bookmarks'], command=listkeys, duration=*, reponame=unknown, responselen=0) (glob)
|
|
remote: wireproto_requests: (args=['ololo'], command=lookup, duration=*, reponame=unknown, responselen=*) (glob)
|
|
|
|
Enable clienttelemetry and change reponame
|
|
$ cat >> $HGRCPATH <<EOF
|
|
> [extensions]
|
|
> clienttelemetry=
|
|
> [common]
|
|
> reponame=repo
|
|
> EOF
|
|
$ hg pull 2>&1 | grep wireproto_requests
|
|
remote: wireproto_requests: (args=[], command=hello, duration=*, reponame=repo, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=['0000000000000000000000000000000000000000-0000000000000000000000000000000000000000'], command=between, duration=*, reponame=repo, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=[], client_fullcommand=pull, client_hostname=*, command=batch, duration=*, reponame=repo, responselen=*) (glob)
|
|
remote: wireproto_requests: (args=[('bookmarks', '1'), ('bundlecaps', 'HG20,$USUAL_BUNDLE2_CAPS$%0Aremotefilelog%3DTrue,remotefilelog'), ('cg', '0'), ('common', 'cc27a19b3db0a292460298a71c413840f27f6a37'), ('heads', 'cc27a19b3db0a292460298a71c413840f27f6a37'), ('listkeys', 'bookmarks'), ('phases', '1')], client_fullcommand=pull, client_hostname=*, command=getbundle, duration=*, reponame=repo, responselen=*) (glob)
|
|
$ cd ../repo
|
|
$ echo xxx > xxx && hg add xxx && hg ci -m xxx
|
|
$ cd -
|
|
$TESTTMP/repo-clone
|
|
$ hg pull -q
|
|
$ hg up tip -q
|
|
$ grep 'getpack' $TESTTMP/loggedrequests
|
|
wireproto_requests: (args=[*], command=getpack*, duration=*, reponame=unknown, responselen=*) (glob)
|
|
wireproto_requests: (args=[*], client_fullcommand=up tip -q, client_hostname=*, command=getpack*, duration=*, reponame=repo, responselen=*) (glob)
|