Skip to content
Snippets Groups Projects
basic.t 5.85 KiB
Newer Older
Marcin Kasperski's avatar
Marcin Kasperski committed
Let's create some repository tree:

  $ mkdir tree1
  $ hg init tree1/repo_a
  $ hg init tree1/bbb/repo_b1
  $ hg init tree1/bbb/repo_b2
  $ hg init tree1/bbb/sub_b/repo_b3
  $ hg init tree1/bbb/sub_b/repo_b4

Marcin Kasperski's avatar
Marcin Kasperski committed
and two other trees:

  $ mkdir -p sub/tree2
  $ mkdir tree3

as we test by local paths, we also need intermediate dirs:

  $ mkdir -p sub/tree2/bbb/sub_b

Let's remember locations:

  $ export T1=`pwd`/tree1
  $ export T2=`pwd`/sub/tree2
  $ export T3=`pwd`/tree3

Let's create custom Mercurial configuration files

  $ mkdir hgrc
  $ cat > hgrc/basic.rc << EOF
  > [ui]
  > username = Just Test <just.text@nowhere.com>
  > [extensions]
  > mercurial_path_pattern =
  > [path_pattern]
  > symm.local = $T1/{repo}
  > symm.remote = $T2/{repo}
  > flat.local = $T1/{repo}
  > flat.remote = $T3/{repo:/=-}
  > EOF

and enable them by HGRCPATH (which is PATH-like variable, see hg help
environment)

  $ export HGRCPATH=`pwd`/hgrc

and let's populate first tree a little bit:

  $ echo "X" > tree1/repo_a/x.txt
  $ hg --cwd tree1/repo_a add
  adding x.txt
  $ hg --cwd tree1/repo_a commit -m "First commit (X)"

  $ echo "Y" > tree1/bbb/repo_b1/y.txt
  $ hg --cwd tree1/bbb/repo_b1 add
  adding y.txt
  $ hg --cwd tree1/bbb/repo_b1 commit -m 'First commit ("Y")'

  $ echo "Z" > tree1/bbb/repo_b2/z.txt
  $ hg --cwd tree1/bbb/repo_b2 add
  adding z.txt
  $ hg --cwd tree1/bbb/repo_b2 commit -m 'First commit ("Z")'

  $ echo "A" > tree1/bbb/sub_b/repo_b3/a.txt
  $ hg --cwd tree1/bbb/sub_b/repo_b3 add
  adding a.txt
  $ hg --cwd tree1/bbb/sub_b/repo_b3 commit -m 'First commit ("A")'

  $ echo "B" > tree1/bbb/sub_b/repo_b4/b.txt
  $ hg --cwd tree1/bbb/sub_b/repo_b4 add
  adding b.txt
  $ hg --cwd tree1/bbb/sub_b/repo_b4 commit -m 'First commit ("B")'

Marcin Kasperski's avatar
Marcin Kasperski committed
Let's check paths:

  $ hg --cwd tree1/repo_a paths
  flat = /tmp/cramtests-*/basic.t/tree3/repo_a (glob)
  symm = /tmp/cramtests-*/basic.t/sub/tree2/repo_a (glob)

  $ hg --cwd tree1/bbb/repo_b1 paths
  flat = /tmp/cramtests-*/basic.t/tree3/bbb-repo_b1 (glob)
  symm = /tmp/cramtests-*/basic.t/sub/tree2/bbb/repo_b1 (glob)

  $ hg --cwd tree1/bbb/repo_b2 paths
  flat = /tmp/cramtests-*/basic.t/tree3/bbb-repo_b2 (glob)
  symm = /tmp/cramtests-*/basic.t/sub/tree2/bbb/repo_b2 (glob)

  $ hg --cwd tree1/bbb/sub_b/repo_b3 paths
  flat = /tmp/cramtests-*/basic.t/tree3/bbb-sub_b-repo_b3 (glob)
  symm = /tmp/cramtests-*/basic.t/sub/tree2/bbb/sub_b/repo_b3 (glob)

  $ hg --cwd tree1/bbb/sub_b/repo_b4 paths
  flat = /tmp/cramtests-*/basic.t/tree3/bbb-sub_b-repo_b4 (glob)
  symm = /tmp/cramtests-*/basic.t/sub/tree2/bbb/sub_b/repo_b4 (glob)

Then cloneto should actually create repositories:
Marcin Kasperski's avatar
Marcin Kasperski committed
  $ hg --cwd tree1/repo_a cloneto symm
  Cloning current repository to /tmp/*/basic.t/sub/tree2/repo_a (resolved from: symm) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ find $T2 -name .hg
  /tmp/cramtests-*/basic.t/sub/tree2/repo_a/.hg (glob)

  $ hg --cwd tree1/repo_a cloneto flat
  Cloning current repository to /tmp/cramtests-*/basic.t/tree3/repo_a (resolved from: flat) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ find $T3 -name .hg
  /tmp/cramtests-*/basic.t/tree3/repo_a/.hg (glob)

  $ hg --cwd tree1/bbb/repo_b1 cloneto symm
  Cloning current repository to /tmp/cramtests-*/basic.t/sub/tree2/bbb/repo_b1 (resolved from: symm) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg --cwd tree1/bbb/repo_b1 cloneto flat
  Cloning current repository to /tmp/cramtests-*/basic.t/tree3/bbb-repo_b1 (resolved from: flat) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

  $ hg --cwd tree1/bbb/repo_b2 cloneto symm
  Cloning current repository to /tmp/cramtests-*/basic.t/sub/tree2/bbb/repo_b2 (resolved from: symm) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg --cwd tree1/bbb/repo_b2 cloneto flat
  Cloning current repository to /tmp/cramtests-*/basic.t/tree3/bbb-repo_b2 (resolved from: flat) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

  $ hg --cwd tree1/bbb/sub_b/repo_b3 cloneto symm
  Cloning current repository to /tmp/cramtests-*/basic.t/sub/tree2/bbb/sub_b/repo_b3 (resolved from: symm) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg --cwd tree1/bbb/sub_b/repo_b3 cloneto flat
  Cloning current repository to /tmp/cramtests-*/basic.t/tree3/bbb-sub_b-repo_b3 (resolved from: flat) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

  $ hg --cwd tree1/bbb/sub_b/repo_b4 cloneto symm
  Cloning current repository to /tmp/cramtests-*/basic.t/sub/tree2/bbb/sub_b/repo_b4 (resolved from: symm) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg --cwd tree1/bbb/sub_b/repo_b4 cloneto flat
  Cloning current repository to /tmp/cramtests-*/basic.t/tree3/bbb-sub_b-repo_b4 (resolved from: flat) (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved

  $ find $T2 -name .hg | sort
  /tmp/cramtests-*/basic.t/sub/tree2/bbb/repo_b1/.hg (glob)
  /tmp/cramtests-*/basic.t/sub/tree2/bbb/repo_b2/.hg (glob)
  /tmp/cramtests-*/basic.t/sub/tree2/bbb/sub_b/repo_b3/.hg (glob)
  /tmp/cramtests-*/basic.t/sub/tree2/bbb/sub_b/repo_b4/.hg (glob)
  /tmp/cramtests-*/basic.t/sub/tree2/repo_a/.hg (glob)

  $ find $T3 -name .hg | sort
  /tmp/cramtests-*/basic.t/tree3/bbb-repo_b1/.hg (glob)
  /tmp/cramtests-*/basic.t/tree3/bbb-repo_b2/.hg (glob)
  /tmp/cramtests-*/basic.t/tree3/bbb-sub_b-repo_b3/.hg (glob)
  /tmp/cramtests-*/basic.t/tree3/bbb-sub_b-repo_b4/.hg (glob)
  /tmp/cramtests-*/basic.t/tree3/repo_a/.hg (glob)