Mercurial > evolve
view tests/test-obsolete-push.t @ 6235:318b81560f8c
tests: port test-doctest.py from core hg
We already have a doctest string for evolve.obshistory.cyclic(), but of course
it didn't actually run. Something like test-doctest.py is first needed to run
doctests via run-tests.py.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Thu, 12 May 2022 20:02:40 +0400 |
parents | c979af037915 |
children |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [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 --secret abort behavior $ cat >> .hg/hgrc <<eof > [experimental] > auto-publish = abort > eof $ hg push -r . pushing to $TESTTMP/source searching for changes no changes found (ignored 1 secret changesets) [1] $ hg push pushing to $TESTTMP/source searching for changes no changes found (ignored 1 secret changesets) [1] $ hg phase --draft $ 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