Mercurial > evolve
view tests/test-wireproto.t @ 4763:184c64c81528 stable
prune: spell --successor flag without any unnecessary shortcuts
If a user wants to spell out -s, it makes sense to allow that. Before this
patch, prune would complain that --successor is not a recognized option.
Obviously people don't usually need to spell --successors by hand thanks to
shell completion (at least for Bash) using debugcomplete to see all available
flags, so this patch doesn't bring any need for more typing.
And thanks to Mercurial understanding shortened forms of command-line flags as
long as they are unambiguous, the old-style `--succ` flags still work normally,
and there are tests that use them. But two tests now use the full form to
demonstrate that both ways work.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Fri, 19 Jul 2019 17:25:29 +0800 |
parents | b8cb1bdbc8d7 |
children | 42dbe3a38ac2 62b60fc1983d |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [defaults] > amend=-d "0 0" > [experimental] > obsmarkers-exchange-debug=true > bundle2-exp=true > [ui] > ssh=python "$RUNTESTDIR/dummyssh" > [phases] > publish = False > [extensions] > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH $ mkcommit() { > echo "$1" > "$1" > hg add "$1" > hg ci -m "add $1" > } setup repo $ hg init server $ hg clone ssh://user@dummy/server client no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cp -r client other Smoke testing ===============.t $ cd client $ mkcommit 0 $ mkcommit a $ hg push pushing to ssh://user@dummy/server searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 2 changesets with 2 changes to 2 files $ hg pull pulling from ssh://user@dummy/server searching for changes no changes found $ hg pull -R ../other pulling from ssh://user@dummy/server requesting all changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files new changesets 8685c6d34325:4957bfdac07e (2 drafts) (run 'hg update' to get a working copy) $ hg push -R ../other pushing to ssh://user@dummy/server searching for changes no changes found [1] Push ============= $ echo 'A' > a $ hg amend $ hg push pushing to ssh://user@dummy/server searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files (+1 heads) remote: obsmarker-exchange: 92 bytes received remote: 1 new obsolescence markers remote: obsoleted 1 changesets $ hg push pushing to ssh://user@dummy/server searching for changes no changes found [1] Pull ============= $ hg -R ../other pull pulling from ssh://user@dummy/server searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to [12] files \(\+1 heads\) (re) obsmarker-exchange: 92 bytes received 1 new obsolescence markers obsoleted 1 changesets new changesets 9d1c114e7797 (1 drafts) (run 'hg heads' to see heads) $ hg -R ../other pull pulling from ssh://user@dummy/server searching for changes no changes found Test some markers discovery =========================== $ echo c > C $ hg add C $ hg commit -m C $ echo c >> C $ hg amend $ hg push pushing to ssh://user@dummy/server searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files remote: obsmarker-exchange: 92 bytes received remote: 1 new obsolescence markers $ hg -R ../other pull 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 obsmarker-exchange: 92 bytes received 1 new obsolescence markers new changesets a5687ec59dd4 (1 drafts) (run 'hg update' to get a working copy) some common hidden $ hg touch . $ hg push pushing to ssh://user@dummy/server searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 0 changes to 1 files (+1 heads) remote: obsmarker-exchange: 183 bytes received remote: 1 new obsolescence markers remote: obsoleted 1 changesets $ hg -R ../other pull pulling from ssh://user@dummy/server searching for changes adding changesets adding manifests adding file changes added 1 changesets with 0 changes to 1 files (+1 heads) obsmarker-exchange: 183 bytes received 1 new obsolescence markers obsoleted 1 changesets new changesets * (glob) (run 'hg heads' to see heads) test discovery avoid exchanging known markers $ hg push pushing to ssh://user@dummy/server searching for changes no changes found [1] $ hg -R ../other pull pulling from ssh://user@dummy/server searching for changes no changes found test discovery can be disabled $ hg push --config experimental.evolution.obsdiscovery=no pushing to ssh://user@dummy/server searching for changes (skipping discovery of obsolescence markers, will exchange everything) (controled by 'experimental.evolution.obsdiscovery' configuration) no changes found remote: obsmarker-exchange: 274 bytes received [1] $ hg -R ../other pull --config experimental.evolution.obsdiscovery=no pulling from ssh://user@dummy/server searching for changes no changes found (skipping discovery of obsolescence markers, will exchange everything) (controled by 'experimental.evolution.obsdiscovery' configuration) obsmarker-exchange: 274 bytes received $ cd .. And disable it server side too: $ hg serve -R server -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log --config experimental.evolution.obsdiscovery=no $ cat hg.pid >> $DAEMON_PIDS $ curl -s http://localhost:$HGPORT/?cmd=capabilities _evoext_getbundle_obscommon _evoext_obshashrange_v1 batch branchmap bundle2=HG20%0Abookmarks%0Achangegroup%3D01%2C02%0Adigests%3Dmd5%2Csha1%2Csha512%0Aerror%3Dabort%2Cunsupportedcontent%2Cpushraced%2Cpushkey%0Ahgtagsfnodes%0Alistkeys%0Aobsmarkers%3DV0%2CV1%0Aphases%3Dheads%0Apushkey%0Aremote-changegroup%3Dhttp%2Chttps%0Arev-branch-cache%0Astream%3Dv2 changegroupsubset compression=*zlib getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash (no-eol) (glob) Check we cannot use pushkey for marker exchange anymore $ hg debugpushkey http://localhost:$HGPORT/ obsolete abort: HTTP Error 410: won't exchange obsmarkers through pushkey [255] $ cat errors.log $ hg debugpushkey ssh://user@dummy/server obsolete remote: abort: won't exchange obsmarkers through pushkey remote: (upgrade your client or server to use the bundle2 protocol) abort: unexpected response: empty string [255] (do some extra pulling to be sure) $ hg -R client pull http://localhost:$HGPORT/ pulling from http://localhost:$HGPORT/ searching for changes no changes found $ hg -R client pull http://localhost:$HGPORT/ --config experimental.evolution=createmarkers pulling from http://localhost:$HGPORT/ searching for changes no changes found $ hg -R client pull http://localhost:$HGPORT/ --config experimental.evolution=createmarkers --config extensions.evolve='!' pulling from http://localhost:$HGPORT/ searching for changes no changes found But we do let it goes fine on repository with exchange disabled: $ $RUNTESTDIR/killdaemons.py $DAEMON_PIDS $ hg serve -R server -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log --config experimental.evolution='!' $ cat hg.pid >> $DAEMON_PIDS $ hg debugpushkey http://localhost:$HGPORT/ obsolete (do some extra pulling to be sure) $ hg -R client pull http://localhost:$HGPORT/ pulling from http://localhost:$HGPORT/ searching for changes no changes found $ hg -R client pull http://localhost:$HGPORT/ --config experimental.evolution=createmarkers pulling from http://localhost:$HGPORT/ searching for changes no changes found $ hg -R client pull http://localhost:$HGPORT/ --config experimental.evolution=createmarkers --config extensions.evolve='!' pulling from http://localhost:$HGPORT/ searching for changes no changes found $ $RUNTESTDIR/killdaemons.py $DAEMON_PIDS