Mercurial > evolve
view tests/test-touch.t @ 1410:2c451fece7a6
evolve: unify revision handling and rework error message
This changesets do a massive refactoring of the way evolve select changesets to
be evolve. We now use a two stages approach:
1) read command line argument and produce a list of revision to evolve.
2) evolve all these revisions.
This allow a much cleaner, robust and extensible code. In the process the error
message issued when there is nothing to evolve have been updated to informs
about other troubles in the repository and point at useful option to solve them.
The 'update' case is handled independently at the start of the function.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Fri, 19 Jun 2015 14:26:33 -0700 |
parents | 0c879e986ce4 |
children | 6c122c975125 |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [ui] > logtemplate={rev}:{node|short} {desc}\n > [defaults] > amend=-d "0 0" > [extensions] > hgext.rebase= > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH $ hg init repo $ cd repo $ echo A > a $ hg add a $ hg commit -m a Basic usage $ hg log -G @ 0:e93df3427f45 a $ hg touch . $ hg log -G @ 1:[0-9a-f]{12} a (re) Revive usage $ echo A > b $ hg add b $ hg commit -m ab --amend $ hg up --hidden 1 0 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory parent is obsolete! $ hg log -G o 3:[0-9a-f]{12} ab (re) @ 1:[0-9a-f]{12} a (re) $ hg touch . 2 new divergent changesets $ hg log -G @ 4:[0-9a-f]{12} a (re) o 3:[0-9a-f]{12} ab (re) $ hg prune 3 1 changesets pruned Duplicate $ hg touch --duplicate . $ hg log -G @ 5:[0-9a-f]{12} a (re) o 4:[0-9a-f]{12} a (re) Multiple touch $ echo C > c $ hg add c $ hg commit -m c $ echo D > d $ hg add d $ hg commit -m d $ hg log -G @ 7:[0-9a-f]{12} d (re) | o 6:[0-9a-f]{12} c (re) | o 5:[0-9a-f]{12} a (re) o 4:[0-9a-f]{12} a (re) $ hg touch 6:7 $ hg log -G @ 9:[0-9a-f]{12} d (re) | o 8:[0-9a-f]{12} c (re) | o 5:[0-9a-f]{12} a (re) o 4:[0-9a-f]{12} a (re) check move data kept after rebase on touch: $ touch gna1 $ hg commit -Am gna1 adding gna1 $ hg mv gna1 gna2 $ hg commit -m move $ hg st -C --change=tip A gna2 gna1 R gna1 $ hg up .^ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg touch 1 new unstable changesets $ hg rebase -s 11 -d 12 rebasing 11:* "move" (glob) $ hg st -C --change=tip A gna2 gna1 R gna1