tests/test-audit-subrepo.t
author Raphaël Gomès <rgomes@octobus.net>
Mon, 14 Oct 2019 13:57:30 +0200
changeset 43826 5ac243a92e37
parent 41726 a62690659d6b
child 44724 5c2a4f37eace
permissions -rw-r--r--
rust-performance: introduce FastHashMap type alias for HashMap Rust's default hashing is slow, because it is meant for preventing collision attacks. For all of the current Rust code, we don't care about those attacks, because if an person with bad intentions has write access to your repo, you have other issues. I've chosen to use the TwoXHash crate because it was made by a reputable member of the Rust community and has very good benchmarks. For now it does not seem to improve performance by much for the current code, but it's something else to not worry about when benchmarking code: in a previous experiment with copytracing in Rust, it accounted for more than 10% of the time of the entire script. Differential Revision: https://phab.mercurial-scm.org/D7116
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34983
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     1
Test illegal name
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     2
-----------------
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     3
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     4
on commit:
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     5
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     6
  $ hg init hgname
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     7
  $ cd hgname
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     8
  $ mkdir sub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
     9
  $ hg init sub/.hg
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    10
  $ echo 'sub/.hg = sub/.hg' >> .hgsub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    11
  $ hg ci -qAm 'add subrepo "sub/.hg"'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35166
diff changeset
    12
  abort: path 'sub/.hg' is inside nested repo 'sub'
34983
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    13
  [255]
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    14
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    15
prepare tampered repo (including the commit above):
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    16
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    17
  $ hg import --bypass -qm 'add subrepo "sub/.hg"' - <<'EOF'
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    18
  > diff --git a/.hgsub b/.hgsub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    19
  > new file mode 100644
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    20
  > --- /dev/null
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    21
  > +++ b/.hgsub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    22
  > @@ -0,0 +1,1 @@
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    23
  > +sub/.hg = sub/.hg
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    24
  > diff --git a/.hgsubstate b/.hgsubstate
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    25
  > new file mode 100644
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    26
  > --- /dev/null
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    27
  > +++ b/.hgsubstate
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    28
  > @@ -0,0 +1,1 @@
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    29
  > +0000000000000000000000000000000000000000 sub/.hg
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    30
  > EOF
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    31
  $ cd ..
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    32
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    33
on clone (and update):
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    34
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    35
  $ hg clone -q hgname hgname2
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35166
diff changeset
    36
  abort: path 'sub/.hg' is inside nested repo 'sub'
34983
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    37
  [255]
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
    38
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    39
Test absolute path
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    40
------------------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    41
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    42
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    43
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    44
  $ hg init absolutepath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    45
  $ cd absolutepath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    46
  $ hg init sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    47
  $ echo '/sub = sub' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    48
  $ hg ci -qAm 'add subrepo "/sub"'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    49
  abort: path contains illegal component: /sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    50
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    51
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    52
prepare tampered repo (including the commit above):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    53
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    54
  $ hg import --bypass -qm 'add subrepo "/sub"' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    55
  > diff --git a/.hgsub b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    56
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    57
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    58
  > +++ b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    59
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    60
  > +/sub = sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    61
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    62
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    63
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    64
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    65
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    66
  > +0000000000000000000000000000000000000000 /sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    67
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    68
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    69
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    70
on clone (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    71
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    72
  $ hg clone -q absolutepath absolutepath2
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    73
  abort: path contains illegal component: /sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    74
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    75
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    76
Test root path
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    77
--------------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    78
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    79
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    80
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    81
  $ hg init rootpath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    82
  $ cd rootpath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    83
  $ hg init sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    84
  $ echo '/ = sub' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    85
  $ hg ci -qAm 'add subrepo "/"'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    86
  abort: path ends in directory separator: /
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    87
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    88
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    89
prepare tampered repo (including the commit above):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    90
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    91
  $ hg import --bypass -qm 'add subrepo "/"' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    92
  > diff --git a/.hgsub b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    93
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    94
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    95
  > +++ b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    96
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    97
  > +/ = sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    98
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
    99
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   100
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   101
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   102
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   103
  > +0000000000000000000000000000000000000000 /
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   104
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   105
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   106
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   107
on clone (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   108
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   109
  $ hg clone -q rootpath rootpath2
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   110
  abort: path ends in directory separator: /
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   111
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   112
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   113
Test empty path
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   114
---------------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   115
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   116
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   117
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   118
  $ hg init emptypath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   119
  $ cd emptypath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   120
  $ hg init sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   121
  $ echo '= sub' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   122
  $ hg ci -qAm 'add subrepo ""'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   123
  hg: parse error at .hgsub:1: = sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   124
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   125
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   126
prepare tampered repo (including the commit above):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   127
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   128
  $ hg import --bypass -qm 'add subrepo ""' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   129
  > diff --git a/.hgsub b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   130
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   131
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   132
  > +++ b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   133
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   134
  > += sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   135
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   136
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   137
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   138
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   139
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   140
  > +0000000000000000000000000000000000000000
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   141
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   142
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   143
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   144
on clone (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   145
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   146
  $ hg clone -q emptypath emptypath2
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   147
  hg: parse error at .hgsub:1: = sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   148
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   149
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   150
Test current path
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   151
-----------------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   152
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   153
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   154
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   155
  $ hg init currentpath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   156
  $ cd currentpath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   157
  $ hg init sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   158
  $ echo '. = sub' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   159
  $ hg ci -qAm 'add subrepo "."'
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   160
  abort: subrepo path contains illegal component: .
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   161
  [255]
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   162
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   163
prepare tampered repo (including the commit above):
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   164
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   165
  $ hg import --bypass -qm 'add subrepo "."' - <<'EOF'
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   166
  > diff --git a/.hgsub b/.hgsub
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   167
  > new file mode 100644
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   168
  > --- /dev/null
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   169
  > +++ b/.hgsub
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   170
  > @@ -0,0 +1,1 @@
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   171
  > +.= sub
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   172
  > diff --git a/.hgsubstate b/.hgsubstate
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   173
  > new file mode 100644
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   174
  > --- /dev/null
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   175
  > +++ b/.hgsubstate
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   176
  > @@ -0,0 +1,1 @@
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   177
  > +0000000000000000000000000000000000000000 .
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   178
  > EOF
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   179
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   180
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   181
on clone (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   182
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   183
  $ hg clone -q currentpath currentpath2
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   184
  abort: subrepo path contains illegal component: .
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   185
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   186
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   187
Test outer path
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   188
---------------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   189
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   190
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   191
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   192
  $ mkdir outerpath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   193
  $ cd outerpath
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   194
  $ hg init main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   195
  $ cd main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   196
  $ hg init ../sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   197
  $ echo '../sub = ../sub' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   198
  $ hg ci -qAm 'add subrepo "../sub"'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   199
  abort: path contains illegal component: ../sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   200
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   201
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   202
prepare tampered repo (including the commit above):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   203
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   204
  $ hg import --bypass -qm 'add subrepo "../sub"' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   205
  > diff --git a/.hgsub b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   206
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   207
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   208
  > +++ b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   209
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   210
  > +../sub = ../sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   211
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   212
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   213
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   214
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   215
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   216
  > +0000000000000000000000000000000000000000 ../sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   217
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   218
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   219
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   220
on clone (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   221
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   222
  $ hg clone -q main main2
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   223
  abort: path contains illegal component: ../sub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   224
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   225
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   226
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   227
Test variable expansion
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   228
-----------------------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   229
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   230
Subrepository paths shouldn't be expanded, but we fail to handle them
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   231
properly. Any local repository paths are expanded.
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   232
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   233
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   234
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   235
  $ mkdir envvar
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   236
  $ cd envvar
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   237
  $ hg init main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   238
  $ cd main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   239
  $ hg init sub1
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   240
  $ cat <<'EOF' > sub1/hgrc
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   241
  > [hooks]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   242
  > log = echo pwned
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   243
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   244
  $ hg -R sub1 ci -qAm 'add sub1 files'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   245
  $ hg -R sub1 log -r. -T '{node}\n'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   246
  39eb4b4d3e096527668784893a9280578a8f38b8
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   247
  $ echo '$SUB = sub1' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   248
  $ SUB=sub1 hg ci -qAm 'add subrepo "$SUB"'
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   249
  abort: subrepo path contains illegal component: $SUB
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   250
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   251
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   252
prepare tampered repo (including the changes above as two commits):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   253
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   254
  $ hg import --bypass -qm 'add subrepo "$SUB"' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   255
  > diff --git a/.hgsub b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   256
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   257
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   258
  > +++ b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   259
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   260
  > +$SUB = sub1
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   261
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   262
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   263
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   264
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   265
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   266
  > +0000000000000000000000000000000000000000 $SUB
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   267
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   268
  $ hg debugsetparents 0
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   269
  $ hg import --bypass -qm 'update subrepo "$SUB"' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   270
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   271
  > --- a/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   272
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   273
  > @@ -1,1 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   274
  > -0000000000000000000000000000000000000000 $SUB
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   275
  > +39eb4b4d3e096527668784893a9280578a8f38b8 $SUB
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   276
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   277
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   278
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   279
on clone (and update) with various substitutions:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   280
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   281
  $ hg clone -q main main2
41458
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   282
  abort: subrepo path contains illegal component: $SUB
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   283
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   284
  $ ls main2
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   285
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   286
  $ SUB=sub1 hg clone -q main main3
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   287
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   288
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   289
  $ ls main3
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   290
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   291
  $ SUB=sub2 hg clone -q main main4
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   292
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   293
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   294
  $ ls main4
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   295
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   296
on clone empty subrepo into .hg, then pull (and update), which at least fails:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   297
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   298
  $ SUB=.hg hg clone -qr0 main main5
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   299
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   300
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   301
  $ ls main5
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   302
  $ test -d main5/.hg/.hg
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   303
  [1]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   304
  $ SUB=.hg hg -R main5 pull -u
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   305
  pulling from $TESTTMP/envvar/main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   306
  searching for changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   307
  adding changesets
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   308
  adding manifests
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   309
  adding file changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   310
  added 1 changesets with 1 changes to 1 files
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   311
  new changesets 7a2f0e59146f
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   312
  .hgsubstate: untracked file differs
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   313
  abort: untracked files in working directory differ from files in requested revision
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   314
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   315
  $ cat main5/.hg/hgrc | grep pwned
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   316
  [1]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   317
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   318
on clone (and update) into .hg, which at least fails:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   319
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   320
  $ SUB=.hg hg clone -q main main6
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   321
  abort: subrepo path contains illegal component: $SUB
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   322
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   323
  $ ls main6
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   324
  $ cat main6/.hg/hgrc | grep pwned
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   325
  [1]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   326
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   327
on clone (and update) into .hg/* subdir:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   328
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   329
  $ SUB=.hg/foo hg clone -q main main7
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   330
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   331
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   332
  $ ls main7
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   333
  $ test -d main7/.hg/.hg
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   334
  [1]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   335
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   336
on clone (and update) into outer tree:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   337
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   338
  $ SUB=../out-of-tree-write hg clone -q main main8
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   339
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   340
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   341
  $ ls main8
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   342
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   343
on clone (and update) into e.g. $HOME, which doesn't work since subrepo paths
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   344
are concatenated prior to variable expansion:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   345
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   346
  $ SUB="$TESTTMP/envvar/fakehome" hg clone -q main main9
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   347
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   348
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   349
  $ ls main9 | wc -l
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   350
  \s*0 (re)
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   351
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   352
  $ ls
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   353
  main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   354
  main2
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   355
  main3
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   356
  main4
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   357
  main5
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   358
  main6
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   359
  main7
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   360
  main8
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   361
  main9
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   362
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   363
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   364
Test tilde
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   365
----------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   366
41458
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   367
The leading tilde may be expanded to $HOME, but it can be a valid subrepo
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   368
path in theory. However, we want to prohibit it as there might be unsafe
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   369
handling of such paths.
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   370
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   371
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   372
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   373
  $ hg init tilde
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   374
  $ cd tilde
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   375
  $ hg init './~'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   376
  $ echo '~ = ~' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   377
  $ hg ci -qAm 'add subrepo "~"'
41458
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   378
  abort: subrepo path contains illegal component: ~
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   379
  [255]
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   380
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   381
prepare tampered repo (including the commit above):
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   382
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   383
  $ hg import --bypass -qm 'add subrepo "~"' - <<'EOF'
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   384
  > diff --git a/.hgsub b/.hgsub
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   385
  > new file mode 100644
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   386
  > --- /dev/null
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   387
  > +++ b/.hgsub
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   388
  > @@ -0,0 +1,1 @@
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   389
  > +~ = ~
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   390
  > diff --git a/.hgsubstate b/.hgsubstate
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   391
  > new file mode 100644
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   392
  > --- /dev/null
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   393
  > +++ b/.hgsubstate
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   394
  > @@ -0,0 +1,1 @@
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   395
  > +0000000000000000000000000000000000000000 ~
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   396
  > EOF
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   397
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   398
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   399
on clone (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   400
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   401
  $ hg clone -q tilde tilde2
41458
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   402
  abort: subrepo path contains illegal component: ~
83377b4b4ae0 subrepo: reject potentially unsafe subrepo paths (BC) (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41457
diff changeset
   403
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   404
34983
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   405
Test direct symlink traversal
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   406
-----------------------------
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   407
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   408
#if symlink
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   409
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   410
on commit:
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   411
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   412
  $ mkdir hgsymdir
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   413
  $ hg init hgsymdir/root
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   414
  $ cd hgsymdir/root
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   415
  $ ln -s ../out
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   416
  $ hg ci -qAm 'add symlink "out"'
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   417
  $ hg init ../out
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   418
  $ echo 'out = out' >> .hgsub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   419
  $ hg ci -qAm 'add subrepo "out"'
34984
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   420
  abort: subrepo 'out' traverses symbolic link
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   421
  [255]
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   422
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   423
prepare tampered repo (including the commit above):
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   424
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   425
  $ hg import --bypass -qm 'add subrepo "out"' - <<'EOF'
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   426
  > diff --git a/.hgsub b/.hgsub
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   427
  > new file mode 100644
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   428
  > --- /dev/null
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   429
  > +++ b/.hgsub
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   430
  > @@ -0,0 +1,1 @@
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   431
  > +out = out
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   432
  > diff --git a/.hgsubstate b/.hgsubstate
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   433
  > new file mode 100644
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   434
  > --- /dev/null
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   435
  > +++ b/.hgsubstate
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   436
  > @@ -0,0 +1,1 @@
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   437
  > +0000000000000000000000000000000000000000 out
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   438
  > EOF
34983
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   439
  $ cd ../..
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   440
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   441
on clone (and update):
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   442
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   443
  $ mkdir hgsymdir2
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   444
  $ hg clone -q hgsymdir/root hgsymdir2/root
34984
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   445
  abort: subrepo 'out' traverses symbolic link
071cbeba4212 subrepo: disallow symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 34983
diff changeset
   446
  [255]
34983
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   447
  $ ls hgsymdir2
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   448
  root
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   449
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   450
#endif
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   451
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   452
Test indirect symlink traversal
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   453
-------------------------------
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   454
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   455
#if symlink
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   456
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   457
on commit:
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   458
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   459
  $ mkdir hgsymin
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   460
  $ hg init hgsymin/root
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   461
  $ cd hgsymin/root
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   462
  $ ln -s ../out
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   463
  $ hg ci -qAm 'add symlink "out"'
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   464
  $ mkdir ../out
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   465
  $ hg init ../out/sub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   466
  $ echo 'out/sub = out/sub' >> .hgsub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   467
  $ hg ci -qAm 'add subrepo "out/sub"'
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   468
  abort: path 'out/sub' traverses symbolic link 'out'
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   469
  [255]
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   470
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   471
prepare tampered repo (including the commit above):
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   472
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   473
  $ hg import --bypass -qm 'add subrepo "out/sub"' - <<'EOF'
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   474
  > diff --git a/.hgsub b/.hgsub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   475
  > new file mode 100644
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   476
  > --- /dev/null
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   477
  > +++ b/.hgsub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   478
  > @@ -0,0 +1,1 @@
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   479
  > +out/sub = out/sub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   480
  > diff --git a/.hgsubstate b/.hgsubstate
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   481
  > new file mode 100644
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   482
  > --- /dev/null
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   483
  > +++ b/.hgsubstate
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   484
  > @@ -0,0 +1,1 @@
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   485
  > +0000000000000000000000000000000000000000 out/sub
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   486
  > EOF
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   487
  $ cd ../..
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   488
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   489
on clone (and update):
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   490
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   491
  $ mkdir hgsymin2
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   492
  $ hg clone -q hgsymin/root hgsymin2/root
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   493
  abort: path 'out/sub' traverses symbolic link 'out'
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   494
  [255]
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   495
  $ ls hgsymin2
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   496
  root
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   497
80d7dbda9294 tests: show symlink traversal across subrepo mount point (SEC)
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
   498
#endif
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   499
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   500
Test symlink traversal by variable expansion
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   501
--------------------------------------------
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   502
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   503
#if symlink
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   504
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   505
  $ FAKEHOME="$TESTTMP/envvarsym/fakehome"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   506
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   507
on commit:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   508
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   509
  $ mkdir envvarsym
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   510
  $ cd envvarsym
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   511
  $ hg init main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   512
  $ cd main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   513
  $ ln -s "`echo "$FAKEHOME" | sed 's|\(.\)/.*|\1|'`"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   514
  $ hg ci -qAm 'add symlink to top-level system directory'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   515
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   516
  $ hg init sub1
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   517
  $ echo pwned > sub1/pwned
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   518
  $ hg -R sub1 ci -qAm 'add sub1 files'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   519
  $ hg -R sub1 log -r. -T '{node}\n'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   520
  f40c9134ba1b6961e12f250868823f0092fb68a8
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   521
  $ echo '$SUB = sub1' >> .hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   522
  $ SUB="$FAKEHOME" hg ci -qAm 'add subrepo "$SUB"'
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   523
  abort: subrepo path contains illegal component: $SUB
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   524
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   525
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   526
prepare tampered repo (including the changes above as two commits):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   527
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   528
  $ hg import --bypass -qm 'add subrepo "$SUB"' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   529
  > diff --git a/.hgsub b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   530
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   531
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   532
  > +++ b/.hgsub
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   533
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   534
  > +$SUB = sub1
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   535
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   536
  > new file mode 100644
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   537
  > --- /dev/null
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   538
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   539
  > @@ -0,0 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   540
  > +0000000000000000000000000000000000000000 $SUB
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   541
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   542
  $ hg debugsetparents 1
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   543
  $ hg import --bypass -qm 'update subrepo "$SUB"' - <<'EOF'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   544
  > diff --git a/.hgsubstate b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   545
  > --- a/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   546
  > +++ b/.hgsubstate
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   547
  > @@ -1,1 +1,1 @@
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   548
  > -0000000000000000000000000000000000000000 $SUB
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   549
  > +f40c9134ba1b6961e12f250868823f0092fb68a8 $SUB
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   550
  > EOF
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   551
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   552
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   553
on clone (and update) without fakehome directory:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   554
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   555
  $ rm -fR "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   556
  $ SUB="$FAKEHOME" hg clone -q main main2
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   557
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   558
  [255]
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   559
  $ test -d "$FAKEHOME"
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   560
  [1]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   561
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   562
on clone (and update) with empty fakehome directory:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   563
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   564
  $ rm -fR "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   565
  $ mkdir "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   566
  $ SUB="$FAKEHOME" hg clone -q main main3
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   567
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   568
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   569
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   570
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   571
on clone (and update) with non-empty fakehome directory:
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   572
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   573
  $ rm -fR "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   574
  $ mkdir "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   575
  $ touch "$FAKEHOME/a"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   576
  $ SUB="$FAKEHOME" hg clone -q main main4
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   577
  abort: subrepo path contains illegal component: $SUB
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   578
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   579
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   580
  a
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   581
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   582
on clone empty subrepo with non-empty fakehome directory,
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   583
then pull (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   584
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   585
  $ rm -fR "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   586
  $ mkdir "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   587
  $ touch "$FAKEHOME/a"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   588
  $ SUB="$FAKEHOME" hg clone -qr1 main main5
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   589
  abort: subrepo path contains illegal component: $SUB
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   590
  [255]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   591
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   592
  a
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   593
  $ test -d "$FAKEHOME/.hg"
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   594
  [1]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   595
  $ SUB="$FAKEHOME" hg -R main5 pull -u
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   596
  pulling from $TESTTMP/envvarsym/main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   597
  searching for changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   598
  adding changesets
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   599
  adding manifests
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   600
  adding file changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   601
  added 1 changesets with 1 changes to 1 files
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   602
  new changesets * (glob)
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   603
  .hgsubstate: untracked file differs
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   604
  abort: untracked files in working directory differ from files in requested revision
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   605
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   606
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   607
  a
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   608
  $ test -d "$FAKEHOME/.hg"
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   609
  [1]
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   610
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   611
on clone empty subrepo with hg-managed fakehome directory,
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   612
then pull (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   613
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   614
  $ rm -fR "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   615
  $ hg init "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   616
  $ touch "$FAKEHOME/a"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   617
  $ hg -R "$FAKEHOME" ci -qAm 'add fakehome file'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   618
  $ SUB="$FAKEHOME" hg clone -qr1 main main6
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   619
  abort: subrepo path contains illegal component: $SUB
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   620
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   621
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   622
  a
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   623
  $ SUB="$FAKEHOME" hg -R main6 pull -u
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   624
  pulling from $TESTTMP/envvarsym/main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   625
  searching for changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   626
  adding changesets
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   627
  adding manifests
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   628
  adding file changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   629
  added 1 changesets with 1 changes to 1 files
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   630
  new changesets * (glob)
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   631
  .hgsubstate: untracked file differs
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   632
  abort: untracked files in working directory differ from files in requested revision
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   633
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   634
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   635
  a
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   636
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   637
on clone only symlink with hg-managed fakehome directory,
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   638
then pull (and update):
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   639
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   640
  $ rm -fR "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   641
  $ hg init "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   642
  $ touch "$FAKEHOME/a"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   643
  $ hg -R "$FAKEHOME" ci -qAm 'add fakehome file'
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   644
  $ SUB="$FAKEHOME" hg clone -qr0 main main7
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   645
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   646
  a
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   647
  $ SUB="$FAKEHOME" hg -R main7 pull -uf
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   648
  pulling from $TESTTMP/envvarsym/main
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   649
  searching for changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   650
  adding changesets
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   651
  adding manifests
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   652
  adding file changes
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   653
  added 2 changesets with 3 changes to 2 files
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   654
  new changesets * (glob)
41457
6c10eba6b9cd subrepo: prohibit variable expansion on creation of hg subrepo (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 41456
diff changeset
   655
  abort: subrepo path contains illegal component: $SUB
41456
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   656
  [255]
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   657
  $ ls "$FAKEHOME"
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   658
  a
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   659
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   660
  $ cd ..
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   661
31286c9282df subrepo: extend path auditing test to include more weird patterns (SEC)
Yuya Nishihara <yuya@tcha.org>
parents: 35393
diff changeset
   662
#endif
41725
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   663
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   664
Test drive letter
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   665
-----------------
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   666
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   667
Windows has a weird relative path that can change the drive letter, which
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   668
should also be prohibited on Windows.
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   669
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   670
prepare tampered repo:
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   671
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   672
  $ hg init driveletter
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   673
  $ cd driveletter
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   674
  $ hg import --bypass -qm 'add subrepo "X:"' - <<'EOF'
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   675
  > diff --git a/.hgsub b/.hgsub
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   676
  > new file mode 100644
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   677
  > --- /dev/null
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   678
  > +++ b/.hgsub
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   679
  > @@ -0,0 +1,1 @@
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   680
  > +X: = foo
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   681
  > diff --git a/.hgsubstate b/.hgsubstate
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   682
  > new file mode 100644
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   683
  > --- /dev/null
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   684
  > +++ b/.hgsubstate
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   685
  > @@ -0,0 +1,1 @@
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   686
  > +0000000000000000000000000000000000000000 X:
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   687
  > EOF
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   688
  $ cd ..
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   689
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   690
on clone (and update):
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   691
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   692
#if windows
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   693
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   694
  $ hg clone -q driveletter driveletter2
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   695
  abort: path contains illegal component: X:
41726
a62690659d6b tests: add a missing abort exit code on Windows in test-audit-subrepo.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 41725
diff changeset
   696
  [255]
41725
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   697
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   698
#else
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   699
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   700
  $ hg clone -q driveletter driveletter2
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   701
  $ ls driveletter2
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   702
  X:
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   703
ffbf742bfe1f subrepo: add test for Windows relative-ish path with drive letter
Yuya Nishihara <yuya@tcha.org>
parents: 41458
diff changeset
   704
#endif