view tests/test-convert-clonebranches.t @ 15800:e4fc0f0b4f7e stable

rebase: reinstate old-style rev spec support for the source and base (issue3181) As of b12362ab13e7 (first released as part of Mercurial 2.0), the rebase command accepted ONLY revsets for the source and base arguments and no longer accepted old-style revision specifications. As a result, some revision names were no longer recognised, e.g. hg rebase --base br-anch abort: unknown revision 'br'! These arguments are now interpreted first as old-style revision specifications, then as revsets when no matching revision is found. This restores backwards compatibility with releases prior to 2.0.
author Steven Brown <StevenGBrown@gmail.com>
date Sun, 08 Jan 2012 23:09:35 +0800
parents 41885892796e
children 687ed69f6fdf
line wrap: on
line source


  $ echo "[extensions]" >> $HGRCPATH
  $ echo "convert = " >> $HGRCPATH
  $ echo "[convert]" >> $HGRCPATH
  $ echo "hg.tagsbranch=0" >> $HGRCPATH
  $ hg init source
  $ cd source
  $ echo a > a
  $ hg ci -qAm adda

Add a merge with one parent in the same branch

  $ echo a >> a
  $ hg ci -qAm changea
  $ hg up -qC 0
  $ hg branch branch0
  marked working directory as branch branch0
  (branches are permanent and global, did you want a bookmark?)
  $ echo b > b
  $ hg ci -qAm addb
  $ hg up -qC
  $ hg merge default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg ci -qm mergeab
  $ hg tag -ql mergeab
  $ cd ..

Miss perl... sometimes

  $ cat > filter.py <<EOF
  > import sys, re
  > 
  > r = re.compile(r'^(?:\d+|pulling from)')
  > sys.stdout.writelines([l for l in sys.stdin if r.search(l)])
  > EOF

convert

  $ hg convert -v --config convert.hg.clonebranches=1 source dest |
  >     python filter.py
  3 adda
  2 changea
  1 addb
  pulling from default into branch0
  1 changesets found
  0 mergeab
  pulling from default into branch0
  1 changesets found

Add a merge with both parents and child in different branches

  $ cd source
  $ hg branch branch1
  marked working directory as branch branch1
  (branches are permanent and global, did you want a bookmark?)
  $ echo a > file1
  $ hg ci -qAm c1
  $ hg up -qC mergeab
  $ hg branch branch2
  marked working directory as branch branch2
  (branches are permanent and global, did you want a bookmark?)
  $ echo a > file2
  $ hg ci -qAm c2
  $ hg merge branch1
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg branch branch3
  marked working directory as branch branch3
  (branches are permanent and global, did you want a bookmark?)
  $ hg ci -qAm c3
  $ cd ..

incremental conversion

  $ hg convert -v --config convert.hg.clonebranches=1 source dest |
  >     python filter.py
  2 c1
  pulling from branch0 into branch1
  4 changesets found
  1 c2
  pulling from branch0 into branch2
  4 changesets found
  0 c3
  pulling from branch2 into branch3
  5 changesets found
  pulling from branch1 into branch3
  1 changesets found