Mercurial > evolve
view tests/test-obsolete-push.t @ 4935:3874bc10d4a7 stable
docs: add two more amend commits to simulate temporary amend commits
sharing.rst made reference to temporary amend commits and used them to
demonstrate that hidden commits are not exchanged. Nowadays, evolve doesn't
create such commits, but it still makes sense to show how they are handled
during the exchange process. So let's add two more amend commits, one for each
repo. This way the guide doesn't have to be updated too much, but doesn't lose
this important detail of working with evolve.
Unfortunately, this means that tons of hashes change, but it's better than to
have figure 4 demonstrate absolutely nothing.
Temporary amend commits were removed from test-sharing.t in 06844693bb21,
but sharing.rst continued using them for demonstration purposes. It might've
been better to replace at least some of the temporary amend commits by extra
amends back then, but oh well.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Mon, 11 Nov 2019 02:42:37 +0700 |
parents | b7b6a4524ef7 |
children | a2fdbece7ce1 a1dad44fe3da |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [defaults] > amend=-d "0 0" > [extensions] > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH $ echo "topic=$(echo $(dirname $TESTDIR))/hgext3rd/topic/" >> $HGRCPATH $ template='{rev}:{node|short}@{branch}({separate("/", obsolete, phase)}) {desc|firstline}\n' $ glog() { > hg log -G --template "$template" "$@" > } Test outgoing, common A is suspended, B unstable and C secret, remote has A and B, neither A or C should be in outgoing. $ hg init source $ cd source $ echo a > a $ hg ci -qAm A a $ echo b > b $ hg ci -qAm B b $ hg up 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo c > c $ hg ci -qAm C c $ hg phase --secret --force . $ hg prune 0 1 2 changesets pruned 1 new orphan changesets $ glog --hidden @ 2:244232c2222a@default(secret) C | | x 1:6c81ed0049f8@default(obsolete/draft) B |/ x 0:1994f17a630e@default(obsolete/draft) A $ hg init ../clone $ cat > ../clone/.hg/hgrc <<EOF > [phases] > publish = false > EOF $ hg outgoing ../clone --template "$template" comparing with ../clone searching for changes 0:1994f17a630e@default(obsolete/draft) A $ cd .. Test options to prevent implicite publishing of changesets ---------------------------------------------------------- $ hg clone source strict-publish-client --pull requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files 2 new obsolescence markers new changesets 1994f17a630e updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd strict-publish-client $ echo c > c $ hg ci -qAm C c abort behavior $ cat >> .hg/hgrc <<eof > [experimental] > auto-publish = abort > eof $ hg push -r . pushing to $TESTTMP/source abort: push would publish 1 changesets (* 'experimental.auto-publish' config) (glob) [255] $ hg push pushing to $TESTTMP/source abort: push would publish 1 changesets (* 'experimental.auto-publish' config) (glob) [255] warning behavior $ echo 'auto-publish = warn' >> .hg/hgrc $ hg push pushing to $TESTTMP/source 1 changesets about to be published searching for changes adding changesets adding manifests adding file changes added 0 changesets with 0 changes to 1 files --publish overrides auto-publish $ echo d > d $ hg ci -qAm D d $ hg push -r . --publish --config experimental.auto-publish=abort pushing to $TESTTMP/source searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files