Mercurial > evolve
diff tests/test-topic-flow-reject-untopiced.t @ 3235:8a772f0c54d9
topics: add a config to reject draft changeset without topic on a server
This patch adds a new config option experimental.topic-mode.server which if
sets to True, the server won't accept any draft changeset without topic on it.
In case both `experimental.topic-mode.server` and
`experimental.topic.publish-bare-branch` are set to True, the enforce-topic one
is respected.
Tests are added for it. The CHANGELOG file is also updated mentioning about the
config option.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sat, 09 Dec 2017 06:13:28 +0100 |
parents | |
children | e642bad8174a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-topic-flow-reject-untopiced.t Sat Dec 09 06:13:28 2017 +0100 @@ -0,0 +1,171 @@ +Testing the config option for rejecting draft changeset without topic +The config option is "experimental.topic-mode.server" + + $ . "$TESTDIR/testlib/topic_setup.sh" + +Creating a server repo + + $ hg init server + $ cd server + $ cat <<EOF >>.hg/hgrc + > [phases] + > publish=False + > [experimental] + > topic-mode.server = enforce + > EOF + + $ hg topic server + marked working directory as topic: server + $ for ch in a b c; do echo foo > $ch; hg ci -Aqm "Added "$ch; done + + $ hg log -G -T "{rev}:{node|short}\n{desc} {topics}" + @ 2:a7b96f87a214 + | Added c server + o 1:d6a8197e192a + | Added b server + o 0:49a3f206c9ae + Added a server + + $ cd .. + +Creating a client repo + + $ hg clone server client + updating to branch default + switching to topic server + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ cd client + $ hg log -G -T "{rev}:{node|short}\n{desc} {topics}" + @ 2:a7b96f87a214 + | Added c server + o 1:d6a8197e192a + | Added b server + o 0:49a3f206c9ae + Added a server + + $ hg topic + * server (3 changesets) + +Create a changeset without topic + + $ hg topic --clear + $ echo foo > d + $ hg ci -Aqm "added d" + + $ hg log -G -T "{rev}:{node|short}\n{desc} {topics}" + @ 3:4e8b0e0237c6 + | added d + o 2:a7b96f87a214 + | Added c server + o 1:d6a8197e192a + | Added b server + o 0:49a3f206c9ae + Added a server + +Push a draft changeset without topic + + $ hg push ../server --new-branch + pushing to ../server + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files + transaction abort! + rollback completed + abort: rejecting draft changesets: 4e8b0e0237 + [255] + + $ hg push ../server -f + pushing to ../server + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files + transaction abort! + rollback completed + abort: rejecting draft changesets: 4e8b0e0237 + [255] + +Grow the stack with more changesets having topic + + $ hg topic client + marked working directory as topic: client + $ for ch in e f g; do echo foo > $ch; hg ci -Aqm "Added "$ch; done; + + $ hg log -G -T "{rev}:{node|short}\n{desc} {topics}" + @ 6:42c4ac86452a + | Added g client + o 5:3dc456efb491 + | Added f client + o 4:18a516babc60 + | Added e client + o 3:4e8b0e0237c6 + | added d + o 2:a7b96f87a214 + | Added c server + o 1:d6a8197e192a + | Added b server + o 0:49a3f206c9ae + Added a server + +Pushing multiple changeset with some having topics and some not + + $ hg push ../server --new-branch + pushing to ../server + searching for changes + adding changesets + adding manifests + adding file changes + added 4 changesets with 4 changes to 4 files + transaction abort! + rollback completed + abort: rejecting draft changesets: 4e8b0e0237 + [255] + +Testing case when both experimental.topic-mode.server and +experimental.topic.publish-bare-branch are set + + $ cd ../server + $ echo 'topic.publish-bare-branch=True' >> .hg/hgrc + $ cd ../client + $ hg push ../server --new-branch + pushing to ../server + searching for changes + adding changesets + adding manifests + adding file changes + added 4 changesets with 4 changes to 4 files + transaction abort! + rollback completed + abort: rejecting draft changesets: 4e8b0e0237 + [255] + +Turning the changeset public and testing push + + $ hg phase -r 3 -p + $ hg log -G -T "{rev}:{node|short}\n{desc} {topics}" + @ 6:42c4ac86452a + | Added g client + o 5:3dc456efb491 + | Added f client + o 4:18a516babc60 + | Added e client + o 3:4e8b0e0237c6 + | added d + o 2:a7b96f87a214 + | Added c + o 1:d6a8197e192a + | Added b + o 0:49a3f206c9ae + Added a + + $ hg push ../server + pushing to ../server + searching for changes + adding changesets + adding manifests + adding file changes + added 4 changesets with 4 changes to 4 files + active topic 'server' is now empty