Mercurial > evolve
view tests/test-evolve-bumped.t @ 2899:32306ee32806
topics: add a new debugconvertbookmark command to convert bookmarks to topics
This new command, aliased to debugcb converts bookmarks to topics. This command
either accept name of a bookmark using flag '-b' or '--all'.
If a bookmark is passed using '-b', the whole stack defined by that bookmark is
converted to topics. If '--all' is passed, the above thing is repeated for every
bookmark in the repository.
If the revset which we are using unable to decides revisions of the stack and
return an expty set, in that cases we are not deleting the bookmark as we are
not writing any topics of the same name as that of bookmark. Also currently if a
changeset has two bookmarks, than there is buggy behaviour. So these are known
lackings in the current implementation which will be fixed in upcoming patches.
This also adds tests for the same.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Fri, 01 Sep 2017 18:02:50 +0200 |
parents | 4b934144ed11 |
children | bd7e8be29542 |
line wrap: on
line source
$ hg init public $ cd public $ echo a > a $ mkcommit() { > echo "$1" > "$1" > hg add "$1" > hg ci -m "add $1" > } $ hg commit -A -m init adding a $ cd .. $ evolvepath=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/ $ hg clone -U public private $ cd private $ cat >> .hg/hgrc <<EOF > [extensions] > evolve = $evolvepath > [ui] > logtemplate = {rev}:{node|short}@{branch}({phase}) {desc|firstline}\n > [phases] > publish = false > EOF $ cd .. $ cp -a private alice $ cp -a private bob $ cd alice $ hg update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo a >> a $ hg commit -u alice -m 'modify a' $ hg push ../private pushing to ../private searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files $ hg log -r 'draft()' 1:4d1169d82e47@default(draft) modify a $ cd ../bob $ hg pull ../private pulling from ../private searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (run 'hg update' to get a working copy) $ hg log -r 'draft()' 1:4d1169d82e47@default(draft) modify a $ hg push ../public pushing to ../public searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files $ hg log -r 'draft()' $ cd ../alice $ hg amend -m 'tweak a' $ hg pull ../public pulling from ../public searching for changes no changes found 1 new phase-divergent changesets $ hg evolve -a -A --phasedivergent recreate:[2] tweak a atop:[1] modify a computing new diff committed as 4d1169d82e47 working directory is now at 4d1169d82e47 Bumped Merge changeset: ----------------------- We currently cannot automatically solve bumped changeset that is the product of a merge, we add a test for it. $ mkcommit _a $ hg up .^ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mkcommit _b created new head $ mkcommit _c $ hg log -G @ 5:eeaf70969381@default(draft) add _c | o 4:6612fc0ddeb6@default(draft) add _b | | o 3:154ad198ff4a@default(draft) add _a |/ o 1:4d1169d82e47@default(public) modify a | o 0:d3873e73d99e@default(public) init $ hg merge 3 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) $ hg commit -m "merge" $ hg commit --amend -m "New message" $ hg phase --public 551127da2a8a --hidden 1 new phase-divergent changesets $ hg log -G @ 7:b28e84916d8c@default(draft) New message |\ +---o 6:551127da2a8a@default(public) merge | |/ | o 5:eeaf70969381@default(public) add _c | | | o 4:6612fc0ddeb6@default(public) add _b | | o | 3:154ad198ff4a@default(public) add _a |/ o 1:4d1169d82e47@default(public) modify a | o 0:d3873e73d99e@default(public) init $ hg evolve --all --phasedivergent skipping b28e84916d8c : we do not handle merge yet