Mercurial > evolve
diff tests/test-topic.t @ 1839:1bc5e62fc0c7
Initial dumb version of topics.
author | Augie Fackler <augie@google.com> |
---|---|
date | Wed, 20 May 2015 21:23:28 -0400 |
parents | |
children | 0ba067a97d06 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-topic.t Wed May 20 21:23:28 2015 -0400 @@ -0,0 +1,357 @@ + $ . "$TESTDIR/testlib" + + $ hg init pinky + $ cd pinky + $ cat <<EOF >> .hg/hgrc + > [phases] + > publish=false + > EOF + + $ hg help topics + hg topics + + View current topic, set current topic, or see all topics. + + options: + + --clear clear active topic if any + + (some details hidden, use --verbose to show complete help) + $ hg topics + + $ for x in alpha beta gamma delta ; do + > echo file $x >> $x + > hg addremove + > hg ci -m "Add file $x" + > done + adding alpha + adding beta + adding gamma + adding delta + +Still no topics + $ hg topics + +Make a topic + $ hg topic narf + $ hg topics + * narf + $ echo topic work >> alpha + $ hg ci -m 'start on narf' + $ hg co .^ + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg topic fran + $ hg topics + * fran + narf + $ echo >> fran work >> beta + $ hg ci -m 'start on fran' + created new head + $ hg co narf + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg topic + fran + * narf + $ echo 'narf!!!' >> alpha + $ hg ci -m 'narf!' + $ hg log -G + @ changeset: 6:7c34953036d6 + | tag: tip + | topic: narf + | parent: 4:fb147b0b417c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: narf! + | + | o changeset: 5:0469d521db49 + | | topic: fran + | | parent: 3:a53952faf762 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: start on fran + | | + o | changeset: 4:fb147b0b417c + |/ topic: narf + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: start on narf + | + o changeset: 3:a53952faf762 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add file delta + | + o changeset: 2:15d1eb11d2fa + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add file gamma + | + o changeset: 1:c692ea2c9224 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add file beta + | + o changeset: 0:c2b7d2f7d14b + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Add file alpha + + +Exchanging of topics: + $ cd .. + $ hg init brain + $ hg -R pinky push -r 4 brain + pushing to brain + searching for changes + adding changesets + adding manifests + adding file changes + added 5 changesets with 5 changes to 4 files +Now that we've pushed to brain, the work done on narf is no longer a +draft, so we won't see that topic name anymore: + + $ hg log -R pinky -G + @ changeset: 6:7c34953036d6 + | tag: tip + | topic: narf + | parent: 4:fb147b0b417c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: narf! + | + | o changeset: 5:0469d521db49 + | | topic: fran + | | parent: 3:a53952faf762 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: start on fran + | | + o | changeset: 4:fb147b0b417c + |/ user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: start on narf + | + o changeset: 3:a53952faf762 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add file delta + | + o changeset: 2:15d1eb11d2fa + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add file gamma + | + o changeset: 1:c692ea2c9224 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: Add file beta + | + o changeset: 0:c2b7d2f7d14b + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: Add file alpha + + $ cd brain + $ hg co tip + 4 files updated, 0 files merged, 0 files removed, 0 files unresolved + +Because the change is public, we won't inherit the topic from narf. + + $ hg topic + $ echo what >> alpha + $ hg topic query + $ hg ci -m 'what is narf, pinky?' + $ hg log -Gl2 + @ changeset: 5:c01515cfc331 + | tag: tip + | topic: query + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: what is narf, pinky? + | + o changeset: 4:fb147b0b417c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: start on narf + | + $ hg push -f ../pinky -r query + pushing to ../pinky + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files (+1 heads) + $ hg -R ../pinky log -Gl 4 + o changeset: 7:c01515cfc331 + | tag: tip + | topic: query + | parent: 4:fb147b0b417c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: what is narf, pinky? + | + | @ changeset: 6:7c34953036d6 + |/ topic: narf + | parent: 4:fb147b0b417c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: narf! + | + | o changeset: 5:0469d521db49 + | | topic: fran + | | parent: 3:a53952faf762 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: start on fran + | | + o | changeset: 4:fb147b0b417c + |/ user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: start on narf + | + $ hg topics + * query + $ cd ../pinky + $ hg co query + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo answer >> alpha + $ hg ci -m 'Narf is like `zort` or `poit`!' + $ hg merge narf + merging alpha + warning: conflicts during merge. + merging alpha incomplete! (edit conflicts, then use 'hg resolve --mark') + 0 files updated, 0 files merged, 0 files removed, 1 files unresolved + use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + [1] + $ hg revert -r narf alpha + $ hg resolve -m alpha + (no more unresolved files) + $ hg topic narf + $ hg ci -m 'Finish narf' + $ hg topics + fran + * narf + query + $ hg phase --public narf + +POSSIBLE BUG: narf topic stays alive even though we just made all +narf commits public: + + $ hg topics + fran + * narf + $ hg log -Gl 6 + @ changeset: 9:ae074045b7a7 + |\ tag: tip + | | parent: 8:54c943c1c167 + | | parent: 6:7c34953036d6 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: Finish narf + | | + | o changeset: 8:54c943c1c167 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: Narf is like `zort` or `poit`! + | | + | o changeset: 7:c01515cfc331 + | | parent: 4:fb147b0b417c + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: what is narf, pinky? + | | + o | changeset: 6:7c34953036d6 + |/ parent: 4:fb147b0b417c + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: narf! + | + | o changeset: 5:0469d521db49 + | | topic: fran + | | parent: 3:a53952faf762 + | | user: test + | | date: Thu Jan 01 00:00:00 1970 +0000 + | | summary: start on fran + | | + o | changeset: 4:fb147b0b417c + |/ user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: start on narf + | + $ cd ../brain + $ hg topics + * query + $ hg pull ../pinky -r narf + pulling from ../pinky + abort: unknown revision 'narf'! + [255] + $ hg pull ../pinky -r default + pulling from ../pinky + searching for changes + adding changesets + adding manifests + adding file changes + added 3 changesets with 3 changes to 1 files + (run 'hg update' to get a working copy) + $ hg topics + * query + +We can pull in the draft-phase change and we get the new topic + + $ hg pull ../pinky + pulling from ../pinky + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files (+1 heads) + (run 'hg heads' to see heads, 'hg merge' to merge) + $ hg topics + fran + * query + $ hg log -Gr 'draft()' + o changeset: 9:0469d521db49 + | tag: tip + | topic: fran + | parent: 3:a53952faf762 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: start on fran + | + +query is not an open topic, so when we clear the current topic it'll +disappear: + + $ hg topics --clear + $ hg topics + fran + +--clear when we don't have an active topic isn't an error: + + $ hg topics --clear + +Move to fran, note that the topic activates, then deactivate the topic. + + $ hg co fran + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg topics + * fran + $ hg topics --clear + $ echo fran? >> beta + $ hg ci -m 'fran?' + $ hg log -Gr 'draft()' + @ changeset: 10:4073470c35e1 + | tag: tip + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: fran? + | + o changeset: 9:0469d521db49 + | topic: fran + | parent: 3:a53952faf762 + | user: test + | date: Thu Jan 01 00:00:00 1970 +0000 + | summary: start on fran + | + $ hg topics + fran