Mercurial > evolve
view tests/test-namespaces-exchange.t @ 6889:a66cf9008781
obslog: also display patch for rebased changesets
This applies the same logic that is used for "merge-diff" to rebased
changesets. The successors' content is compared to the content of the
predecessors rebased in-memory on the new parents.
This highlights the changes that were actually introduced while rebasing (like
conflict resolution or API adjustment).
As a side effect, obslog now also outputs slightly more diffs for splits,
showing what parts of the original big changeset were moved to the smaller
split components (but for now it only works for the first few changesets).
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 22 Sep 2024 02:58:54 +0200 |
parents | 5e6fa2dd796a |
children | cdf929e69cde |
line wrap: on
line source
Limiting topic namespaces during exchange based on a config option $ . "$TESTDIR/testlib/common.sh" $ cat >> $HGRCPATH << EOF > [extensions] > topic = > [phases] > publish = no > [ui] > ssh = "$PYTHON" "$RUNTESTDIR/dummyssh" > [devel] > tns-report-transactions = pull > [ui] > logtemplate = "{rev}: {desc} {fqbn} ({phase})\n" > EOF $ hg init orig #testcases local ssh http #if http $ hg serve -R orig -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log $ cat hg.pid >> $DAEMON_PIDS #endif we advertise the new capability, including during local exchange #if local $ hg debugcapabilities orig | grep topics ext-topics-publish=none ext-topics-tns-heads topics topics-namespaces #endif #if ssh $ hg debugcapabilities ssh://user@dummy/orig | grep topics _exttopics_heads ext-topics-publish=none ext-topics-tns-heads topics topics-namespaces #endif #if http $ hg debugcapabilities http://localhost:$HGPORT/ | grep topics _exttopics_heads ext-topics-publish=none ext-topics-tns-heads topics topics-namespaces #endif #if local $ hg clone orig clone -q #endif #if ssh $ hg clone ssh://user@dummy/orig clone -q #endif #if http $ hg clone http://localhost:$HGPORT/ clone -q #endif $ cd orig changesets without topic namespace are freely exchanged $ echo apple > a $ hg debug-topic-namespace --clear $ hg topic apple marked working directory as topic: apple $ hg ci -qAm apple $ hg log -r . -T '{rev}: {join(extras, " ")}\n' 0: branch=default topic=apple $ hg incoming -R ../clone comparing with * (glob) 0: apple default//apple (draft) $ hg pull -R ../clone pulling from * (glob) requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files new changesets bf4c1d971543 (1 drafts) (run 'hg update' to get a working copy) changesets with topic namespaces are only exchanged if configuration allows $ echo banana > b $ hg debug-topic-namespace bob marked working directory as topic namespace: bob $ hg topic banana $ hg ci -qAm 'banana' $ hg incoming -R ../clone --config experimental.tns-default-pull-namespaces=foo comparing with * (glob) searching for changes no changes found [1] $ hg pull -R ../clone --config experimental.tns-default-pull-namespaces=foo pulling from * (glob) searching for changes no changes found this config option takes a list of values $ hg incoming -R ../clone --config experimental.tns-default-pull-namespaces=foo,bob comparing with * (glob) searching for changes 1: banana default//bob/banana (draft) $ hg pull -R ../clone --config experimental.tns-default-pull-namespaces=foo,bob pulling from * (glob) searching for changes adding changesets adding manifests adding file changes topic namespaces affected: bob added 1 changesets with 1 changes to 1 files new changesets ed9751f04a18 (1 drafts) (run 'hg update' to get a working copy) we have a "permit all" config value $ echo coconut > c $ hg debug-topic-namespace charlie $ hg topic coconut $ hg ci -qAm 'coconut' $ hg incoming -R ../clone --config experimental.tns-default-pull-namespaces=* comparing with * (glob) searching for changes 2: coconut default//charlie/coconut (draft) $ hg pull -R ../clone --config experimental.tns-default-pull-namespaces=* pulling from * (glob) searching for changes adding changesets adding manifests adding file changes topic namespaces affected: charlie added 1 changesets with 1 changes to 1 files new changesets 16d2440597e2 (1 drafts) (run 'hg update' to get a working copy) testing the default value for this config option at the moment $ echo durian > d $ hg debug-topic-namespace dave $ hg topic durian $ hg ci -qAm 'durian' $ hg incoming -R ../clone comparing with * (glob) searching for changes 3: durian default//dave/durian (draft) $ hg pull -R ../clone pulling from * (glob) searching for changes adding changesets adding manifests adding file changes topic namespaces affected: dave added 1 changesets with 1 changes to 1 files new changesets d5d5dda52b2f (1 drafts) (run 'hg update' to get a working copy) testing related config options also specifying changesets and branches explicitly $ echo elderberry > e $ hg debug-topic-namespace eve $ hg topic elderberry $ hg ci -qAm 'elderberry' $ echo feijoa > f $ hg debug-topic-namespace frank $ hg topic feijoa $ hg ci -qAm 'feijoa' global hgrc $ cat >> $HGRCPATH << EOF > [experimental] > tns-default-pull-namespaces = alice, bob, eve > EOF $ hg incoming -R ../clone comparing with * (glob) searching for changes 4: elderberry default//eve/elderberry (draft) global hgrc with explicit target $ hg incoming -R ../clone --rev tip comparing with * (glob) searching for changes 4: elderberry default//eve/elderberry (draft) 5: feijoa default//frank/feijoa (draft) source repo hgrc (should not matter) $ cat >> ../orig/.hg/hgrc << EOF > [experimental] > tns-default-pull-namespaces = does, not, matter > EOF $ hg incoming -R ../clone comparing with * (glob) searching for changes 4: elderberry default//eve/elderberry (draft) local repo hgrc (overrides global hgrc) $ cat >> ../clone/.hg/hgrc << EOF > [experimental] > tns-default-pull-namespaces = frank > EOF $ hg incoming -R ../clone comparing with * (glob) searching for changes 4: elderberry default//eve/elderberry (draft) 5: feijoa default//frank/feijoa (draft) local repo hgrc with explicit target $ hg incoming -R ../clone --rev 4 comparing with * (glob) searching for changes 4: elderberry default//eve/elderberry (draft) #if http $ $RUNTESTDIR/killdaemons.py $DAEMON_PIDS $ cat $TESTTMP/errors.log #endif $ hg branches default//frank/feijoa 5:c58726fdcfd8 default//eve/elderberry 4:59694f5082fe (inactive) default//dave/durian 3:d5d5dda52b2f (inactive) default//charlie/coconut 2:16d2440597e2 (inactive) default//bob/banana 1:ed9751f04a18 (inactive) default//apple 0:bf4c1d971543 (inactive) $ cd ..