Skip to content
Snippets Groups Projects
basic.t 6.53 KiB
Newer Older

Basic path pattern operations test.
Defining various locations:
  $ WORK_DIR=${WORK_DIR-`pwd`/work}
  $ rm -rf $WORK_DIR
  $ export T1=$WORK_DIR/tree1
  $ export T2=$WORK_DIR/sub/tree2
  $ export T3=$WORK_DIR/tree3
... and custom Mercurial configuration files
  $ export HGRCPATH=$WORK_DIR/hgrc
  $ mkdir -p $HGRCPATH
  $ cat > $HGRCPATH/basic.rc << EOF
Marcin Kasperski's avatar
Marcin Kasperski committed
  > [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

Let's create some repositories:

  $ mkdir -p $T1
  $ hg init $T1/repo_a
  $ hg init $T1/bbb/repo_b1
  $ hg init $T1/bbb/repo_b2
  $ hg init $T1/bbb/sub_b/repo_b3
  $ hg init $T1/bbb/sub_b/repo_b4
and two other trees:

  $ mkdir -p $T2
  $ mkdir -p $T3

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

  $ mkdir -p $T2/bbb/sub_b
Marcin Kasperski's avatar
Marcin Kasperski committed

and let's populate first tree a little bit:

  $ echo "X" > $T1/repo_a/x.txt
  $ hg --cwd $T1/repo_a add
Marcin Kasperski's avatar
Marcin Kasperski committed
  adding x.txt
  $ hg --cwd $T1/repo_a commit -m "First commit (X)"
  $ echo "Y" > $T1/bbb/repo_b1/y.txt
  $ hg --cwd $T1/bbb/repo_b1 add
Marcin Kasperski's avatar
Marcin Kasperski committed
  adding y.txt
  $ hg --cwd $T1/bbb/repo_b1 commit -m 'First commit ("Y")'
  $ echo "Z" > $T1/bbb/repo_b2/z.txt
  $ hg --cwd $T1/bbb/repo_b2 add
Marcin Kasperski's avatar
Marcin Kasperski committed
  adding z.txt
  $ hg --cwd $T1/bbb/repo_b2 commit -m 'First commit ("Z")'
  $ echo "A" > $T1/bbb/sub_b/repo_b3/a.txt
  $ hg --cwd $T1/bbb/sub_b/repo_b3 add
Marcin Kasperski's avatar
Marcin Kasperski committed
  adding a.txt
  $ hg --cwd $T1/bbb/sub_b/repo_b3 commit -m 'First commit ("A")'
  $ echo "B" > $T1/bbb/sub_b/repo_b4/b.txt
  $ hg --cwd $T1/bbb/sub_b/repo_b4 add
Marcin Kasperski's avatar
Marcin Kasperski committed
  adding b.txt
  $ hg --cwd $T1/bbb/sub_b/repo_b4 commit -m 'First commit ("B")'
Marcin Kasperski's avatar
Marcin Kasperski committed
Let's check paths:

  flat = /tmp/cramtests-*/basic.t/work/tree3/repo_a (glob)
  symm = /tmp/cramtests-*/basic.t/work/sub/tree2/repo_a (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed

  $ hg --cwd $T1/bbb/repo_b1 paths    | sort
  flat = /tmp/cramtests-*/basic.t/work/tree3/bbb-repo_b1 (glob)
  symm = /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/repo_b1 (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed

  $ hg --cwd $T1/bbb/repo_b2 paths    | sort
  flat = /tmp/cramtests-*/basic.t/work/tree3/bbb-repo_b2 (glob)
  symm = /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/repo_b2 (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed

  $ hg --cwd $T1/bbb/sub_b/repo_b3 paths    | sort
  flat = /tmp/cramtests-*/basic.t/work/tree3/bbb-sub_b-repo_b3 (glob)
  symm = /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/sub_b/repo_b3 (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed

  $ hg --cwd $T1/bbb/sub_b/repo_b4 paths    | sort
  flat = /tmp/cramtests-*/basic.t/work/tree3/bbb-sub_b-repo_b4 (glob)
  symm = /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/sub_b/repo_b4 (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed

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

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

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

  $ hg --cwd $T1/bbb/sub_b/repo_b4 cloneto symm
  Cloning current repository to /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/sub_b/repo_b4 (resolved from: symm) (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ hg --cwd $T1/bbb/sub_b/repo_b4 cloneto flat
  Cloning current repository to /tmp/cramtests-*/basic.t/work/tree3/bbb-sub_b-repo_b4 (resolved from: flat) (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed
  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/work/sub/tree2/bbb/repo_b1/.hg (glob)
  /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/repo_b2/.hg (glob)
  /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/sub_b/repo_b3/.hg (glob)
  /tmp/cramtests-*/basic.t/work/sub/tree2/bbb/sub_b/repo_b4/.hg (glob)
  /tmp/cramtests-*/basic.t/work/sub/tree2/repo_a/.hg (glob)
Marcin Kasperski's avatar
Marcin Kasperski committed

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

Let's also check list_path_patterns:

  $ hg list_path_patterns
  Defined path patterns:
  flat
      local:  /tmp/cramtests-*/basic.t/work/tree1/{repo} (glob)
      remote: /tmp/cramtests-*/basic.t/work/tree3/{repo:/=-} (glob)
  symm
      local:  /tmp/cramtests-*/basic.t/work/tree1/{repo} (glob)
      remote: /tmp/cramtests-*/basic.t/work/sub/tree2/{repo} (glob)

Marcin Kasperski's avatar
Marcin Kasperski committed
Error reactions

  $ hg --cwd $T1/bbb/sub_b/repo_b3 cloneto niematakiegorepo
  abort: Unknown alias: niematakiegorepo. Defined path aliases: flat, symm
  [255]