Mercurial > evolve
view tests/test-evolve-serveronly-legacy.t @ 4416:b2a8e67b0933
evolve: handle a case in pubic-div when merging results in same as public
In public divergence resolution, what we do is:
1) first apply content divergence resolution
2) then phase divergent resolution on resultant node of 1) case
While doing case 1 it is possible that result of merging the two csets
would have same changes as public one contains. And then processing
the case 2 would create an empty commit which is not something we want
to do.
So this patch catch that same case when merging results in same as public
cset and don't create a new node, instead to solve the divergence
it just add a obsmarker from "other divergent" to "public divergent"
i.e. [other, (public,)]
Next patch will add the continue case handling for this same case.
This patch also adds the tests for the different cases which are possible
for the above mentioned case.
There is test for continue case too which is broken in this patch
and will be fixed in next patch.
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Fri, 22 Feb 2019 01:02:51 +0530 |
parents | 79a926b557f1 |
children | e1a230cc4527 e5d91fd1f319 |
line wrap: on
line source
$ . ${TESTDIR}/testlib/pythonpath.sh $ cat >> $HGRCPATH <<EOF > [defaults] > amend=-d "0 0" > [web] > push_ssl = false > allow_push = * > [phases] > publish = False > [experimental] > bundle2-exp=False # < Mercurial-4.0 > [devel] > legacy.exchange=bundle1 > [extensions] > EOF $ mkcommit() { > echo "$1" > "$1" > hg add "$1" > hg ci -m "add $1" > } $ hg init server Try the multiple ways to setup the extension $ hg -R server log --config 'extensions.evolve.serveronly=' $ hg -R server log --config "extensions.evolve.serveronly=${SRCDIR}/hgext3rd/evolve/serveronly.py" $ PYTHONPATH=$HGTEST_ORIG_PYTHONPATH hg -R server log --config "extensions.evolve.serveronly=${SRCDIR}/hgext3rd/evolve/serveronly.py" setup repo $ echo "[extensions]" >> ./server/.hg/hgrc $ echo "evolve.serveronly=" >> ./server/.hg/hgrc $ hg serve -R server -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log --traceback $ cat hg.pid >> $DAEMON_PIDS $ hg clone http://localhost:$HGPORT/ client no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat ./errors.log $ echo "[extensions]" >> ./client/.hg/hgrc $ echo "evolve=" >> ./client/.hg/hgrc $ cp -r client other Smoke testing =============== $ cd client $ mkcommit 0 $ mkcommit a $ hg push pushing to http://localhost:$HGPORT/ searching for changes abort: remote error: incompatible Mercurial client; bundle2 required (see https://www.mercurial-scm.org/wiki/IncompatibleClient) [255] $ cat ../errors.log