Mercurial > evolve
view tests/test-minitopic.t @ 4728:ef8907df73fc stable
touch: fix the inconsistent behavior of divergence catching logic (issue6107)
When touching a node, the way we check if it can lead to divergence
is we look at the successors sets of the rev being touched. And if
there is successor revs exists (excluding the case when that successor
set is (A,) for rev A) that means there will be divergence and we warn
the user.
This works fine but there is still a case (which is not covered by looking
at successor sets) which can lead to divergence.
That case is: when there is already a revision exists which is divergent
to the revision being touched. And performing the touch would revive
that "dead" divergence. (Dead because one of the revision is obsolete which
is the one we are touching)
And to see if there is any rev which is divergent to a particular rev
we already have a function which we can use here
i.e. `evolvecmd.divergentsets(repo, ctx_being_touched)`
Changes in test file demonstrate the fixed behaviour.
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Wed, 17 Jul 2019 17:58:44 +0200 |
parents | 1bc4b0807c37 |
children | d171815d2618 |
line wrap: on
line source
$ . $TESTDIR/testlib/common.sh setup $ cat >> $HGRCPATH << EOF > [extensions] > share= > blackbox= > [web] > allow_push = * > push_ssl = no > [phases] > publish = False > [paths] > enabled = http://localhost:$HGPORT/ > disabled = http://localhost:$HGPORT2/ > EOF $ hg init ./server-enabled $ cat >> server-enabled/.hg/hgrc << EOF > [extensions] > serverminitopic= > [experimental] > server-mini-topic = yes > EOF $ hg share ./server-enabled ./server-disabled updating working directory 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat >> server-disabled/.hg/hgrc << EOF > [extensions] > serverminitopic= > [experimental] > server-mini-topic = no > EOF $ hg init client-disabled $ hg init client-enabled $ cat >> client-enabled/.hg/hgrc << EOF > [extensions] > topic= > EOF $ hg serve -R server-enabled -p $HGPORT -d --pid-file hg1.pid --errorlog hg1.error $ cat hg1.pid > $DAEMON_PIDS $ hg serve -R server-disabled -p $HGPORT2 -d --pid-file hg2.pid --errorlog hg2.error $ cat hg2.pid >> $DAEMON_PIDS $ curl --silent http://localhost:$HGPORT/?cmd=capabilities | grep -o topics topics $ curl --silent http://localhost:$HGPORT2/?cmd=capabilities | grep -o topics [1] Pushing first changesets to the servers -------------------------------------- $ cd client-enabled $ mkcommit c_A0 $ hg push enabled pushing to http://localhost:$HGPORT/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files $ mkcommit c_B0 $ hg push disabled pushing to http://localhost:$HGPORT2/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files $ cat $TESTTMP/hg1.error $ cat $TESTTMP/hg2.error Pushing new head ---------------- $ hg up 'desc("c_A0")' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit c_C0 created new head (consider using topic for lightweight branches. See 'hg help topic') $ hg push enabled pushing to http://localhost:$HGPORT/ searching for changes abort: push creates new remote head 22c9514ed811! (merge or see 'hg help push' for details about pushing new heads) [255] $ hg push disabled pushing to http://localhost:$HGPORT2/ searching for changes abort: push creates new remote head 22c9514ed811! (merge or see 'hg help push' for details about pushing new heads) [255] $ curl --silent http://localhost:$HGPORT/?cmd=branchmap | sort default 0ab6d544d0efd629fda056601cfe95e73d1af210 $ curl --silent http://localhost:$HGPORT2/?cmd=branchmap | sort default 0ab6d544d0efd629fda056601cfe95e73d1af210 $ cat $TESTTMP/hg1.error $ cat $TESTTMP/hg2.error Pushing new topic ----------------- $ hg merge 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) $ mkcommit c_D0 $ hg log -G @ changeset: 3:9c660cf97499 |\ tag: tip | | parent: 2:22c9514ed811 | | parent: 1:0ab6d544d0ef | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: c_D0 | | | o changeset: 2:22c9514ed811 | | parent: 0:14faebcf9752 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: c_C0 | | o | changeset: 1:0ab6d544d0ef |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: c_B0 | o changeset: 0:14faebcf9752 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: c_A0 $ hg push enabled pushing to http://localhost:$HGPORT/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 2 changesets with 2 changes to 2 files $ hg up 'desc("c_C0")' 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg topic topic_A marked working directory as topic: topic_A $ mkcommit c_E0 active topic 'topic_A' grew its first changeset (see 'hg help topics' for more information) $ hg push disabled pushing to http://localhost:$HGPORT2/ searching for changes abort: push creates new remote head f31af349535e! (merge or see 'hg help push' for details about pushing new heads) [255] $ hg push enabled pushing to http://localhost:$HGPORT/ 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) $ curl --silent http://localhost:$HGPORT/?cmd=branchmap | sort default 9c660cf97499ae01ccb6894880455c6ffa4b19cf default%3Atopic_A f31af349535e413b6023f11b51a6afccf4139180 $ curl --silent http://localhost:$HGPORT2/?cmd=branchmap | sort default 9c660cf97499ae01ccb6894880455c6ffa4b19cf f31af349535e413b6023f11b51a6afccf4139180 $ cat $TESTTMP/hg1.error $ cat $TESTTMP/hg2.error Pushing new head to a topic --------------------------- $ hg up 'desc("c_D0")' 2 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg topic topic_A marked working directory as topic: topic_A $ mkcommit c_F0 $ hg log -G @ changeset: 5:82c5842e0472 | tag: tip | topic: topic_A | parent: 3:9c660cf97499 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: c_F0 | | o changeset: 4:f31af349535e | | topic: topic_A | | parent: 2:22c9514ed811 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: c_E0 | | o | changeset: 3:9c660cf97499 |\| parent: 2:22c9514ed811 | | parent: 1:0ab6d544d0ef | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: c_D0 | | | o changeset: 2:22c9514ed811 | | parent: 0:14faebcf9752 | | user: test | | date: Thu Jan 01 00:00:00 1970 +0000 | | summary: c_C0 | | o | changeset: 1:0ab6d544d0ef |/ user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: c_B0 | o changeset: 0:14faebcf9752 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: c_A0 $ hg push enabled pushing to http://localhost:$HGPORT/ searching for changes abort: push creates new remote head 82c5842e0472 on branch 'default:topic_A'! (merge or see 'hg help push' for details about pushing new heads) [255] $ hg push disabled pushing to http://localhost:$HGPORT2/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files $ curl --silent http://localhost:$HGPORT/?cmd=branchmap | sort default 9c660cf97499ae01ccb6894880455c6ffa4b19cf default%3Atopic_A f31af349535e413b6023f11b51a6afccf4139180 82c5842e047215160763f81ae93ae42c65b20a63 $ curl --silent http://localhost:$HGPORT2/?cmd=branchmap | sort default f31af349535e413b6023f11b51a6afccf4139180 82c5842e047215160763f81ae93ae42c65b20a63 $ cat $TESTTMP/hg1.error $ cat $TESTTMP/hg2.error