view tests/test-convert-svn-branches.t @ 37199:c5687ce3b411

infinitepush: drop the `--to` flag to push and use `-B` instead The extension added a `--to` flag to specify the bookmark to which revs should be pushed. This patch deletes that flag and instead uses the `-B` flag. After this patch, bookmark passed as `-B` is parsed and if it matches the infinitepush bookmark pattern, we consider that push as infinitepush. This is still not the best of what we can do. Later patches in the series will drop the use of `-B` flag and will instead handle things at bookmark bundle2 part. Plugging these logic to bookmark bundle2 part will also get rid of the scratchbranchparttype bundle2 part. Differential Revision: https://phab.mercurial-scm.org/D2108
author Pulkit Goyal <7895pulkit@gmail.com>
date Fri, 09 Feb 2018 15:49:46 +0530
parents 584044e5ad57
children 46da52f4b820
line wrap: on
line source

#require svn svn-bindings

  $ cat >> $HGRCPATH <<EOF
  > [extensions]
  > convert =
  > EOF

  $ svnadmin create svn-repo
  $ svnadmin load -q svn-repo < "$TESTDIR/svn/branches.svndump"

Convert trunk and branches

  $ cat > branchmap <<EOF
  > old3 newbranch
  > 
  > 
  > EOF
  $ hg convert --branchmap=branchmap --datesort -r 10 svn-repo A-hg
  initializing destination A-hg repository
  scanning source...
  sorting...
  converting...
  10 init projA
  9 hello
  8 branch trunk, remove c and dir
  7 change a
  6 change b
  5 move and update c
  4 move and update c
  3 change b again
  2 move to old2
  1 move back to old
  0 last change to a

Test template keywords

  $ hg -R A-hg log --template '{rev} {svnuuid}{svnpath}@{svnrev}\n'
  10 644ede6c-2b81-4367-9dc8-d786514f2cde/trunk@10
  9 644ede6c-2b81-4367-9dc8-d786514f2cde/branches/old@9
  8 644ede6c-2b81-4367-9dc8-d786514f2cde/branches/old2@8
  7 644ede6c-2b81-4367-9dc8-d786514f2cde/branches/old@7
  6 644ede6c-2b81-4367-9dc8-d786514f2cde/trunk@6
  5 644ede6c-2b81-4367-9dc8-d786514f2cde/branches/old@6
  4 644ede6c-2b81-4367-9dc8-d786514f2cde/branches/old@5
  3 644ede6c-2b81-4367-9dc8-d786514f2cde/trunk@4
  2 644ede6c-2b81-4367-9dc8-d786514f2cde/branches/old@3
  1 644ede6c-2b81-4367-9dc8-d786514f2cde/trunk@2
  0 644ede6c-2b81-4367-9dc8-d786514f2cde/trunk@1

Convert again

  $ hg convert --branchmap=branchmap --datesort svn-repo A-hg
  scanning source...
  sorting...
  converting...
  0 branch trunk@1 into old3

  $ cd A-hg
  $ hg log -G --template 'branch={branches} {rev} {desc|firstline} files: {files}\n'
  o  branch=newbranch 11 branch trunk@1 into old3 files:
  |
  | o  branch= 10 last change to a files: a
  | |
  | | o  branch=old 9 move back to old files:
  | | |
  | | o  branch=old2 8 move to old2 files:
  | | |
  | | o  branch=old 7 change b again files: b
  | | |
  | o |  branch= 6 move and update c files: b
  | | |
  | | o  branch=old 5 move and update c files: c
  | | |
  | | o  branch=old 4 change b files: b
  | | |
  | o |  branch= 3 change a files: a
  | | |
  | | o  branch=old 2 branch trunk, remove c and dir files: c
  | |/
  | o  branch= 1 hello files: a b c dir/e
  |/
  o  branch= 0 init projA files:
  

  $ hg branches
  newbranch                     11:a6d7cc050ad1
  default                       10:6e2b33404495
  old                            9:93c4b0f99529
  old2                           8:b52884d7bead (inactive)
  $ hg tags -q
  tip
  $ cd ..

Test hg failing to call itself

  $ HG=foobar hg convert svn-repo B-hg 2>&1 | grep abort
  abort: Mercurial failed to run itself, check hg executable is in PATH

Convert 'trunk' to branch other than 'default'

  $ cat > branchmap <<EOF
  > default hgtrunk
  > 
  > 
  > EOF
  $ hg convert --branchmap=branchmap --datesort -r 10 svn-repo C-hg
  initializing destination C-hg repository
  scanning source...
  sorting...
  converting...
  10 init projA
  9 hello
  8 branch trunk, remove c and dir
  7 change a
  6 change b
  5 move and update c
  4 move and update c
  3 change b again
  2 move to old2
  1 move back to old
  0 last change to a

  $ cd C-hg
  $ hg branches --template '{branch}\n'
  hgtrunk
  old
  old2
  $ cd ..