tests/test-audit-path.t
author Mark Thomas <mbthomas@fb.com>
Mon, 02 Oct 2017 14:05:30 -0700
changeset 34555 989e884d1be9
parent 33633 20bac46f7744
child 34661 eb586ed5d8ce
permissions -rw-r--r--
merge: check for path conflicts when merging (issue5628) When merging, check for any path conflicts introduced by the manifest merge and rename the conflicting file to a safe name. Differential Revision: https://phab.mercurial-scm.org/D784
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
     1
  $ hg init
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
     2
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
     3
audit of .hg
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
     4
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
     5
  $ hg add .hg/00changelog.i
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 15441
diff changeset
     6
  abort: path contains illegal component: .hg/00changelog.i (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
     7
  [255]
5158
d316124ebbea Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     8
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
     9
#if symlink
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    10
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    11
Symlinks
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    12
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    13
  $ mkdir a
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    14
  $ echo a > a/a
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    15
  $ hg ci -Ama
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    16
  adding a/a
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    17
  $ ln -s a b
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    18
  $ echo b > a/b
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    19
  $ hg add b/b
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 15441
diff changeset
    20
  abort: path 'b/b' traverses symbolic link 'b' (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
    21
  [255]
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    22
  $ hg add b
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    23
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    24
should still fail - maybe
5158
d316124ebbea Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    25
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    26
  $ hg add b/b
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 15441
diff changeset
    27
  abort: path 'b/b' traverses symbolic link 'b' (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
    28
  [255]
5158
d316124ebbea Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    29
27234
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    30
  $ hg commit -m 'add symlink b'
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    31
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    32
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    33
Test symlink traversing when accessing history:
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    34
-----------------------------------------------
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    35
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    36
(build a changeset where the path exists as a directory)
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    37
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    38
  $ hg up 0
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    39
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    40
  $ mkdir b
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    41
  $ echo c > b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    42
  $ hg add b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    43
  $ hg ci -m 'add directory b'
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    44
  created new head
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    45
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    46
Test that hg cat does not do anything wrong the working copy has 'b' as directory
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    47
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    48
  $ hg cat b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    49
  c
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    50
  $ hg cat -r "desc(directory)" b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    51
  c
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    52
  $ hg cat -r "desc(symlink)" b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    53
  b/a: no such file in rev bc151a1f53bd
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    54
  [1]
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    55
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    56
Test that hg cat does not do anything wrong the working copy has 'b' as a symlink (issue4749)
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    57
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    58
  $ hg up 'desc(symlink)'
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    59
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    60
  $ hg cat b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    61
  b/a: no such file in rev bc151a1f53bd
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    62
  [1]
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    63
  $ hg cat -r "desc(directory)" b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    64
  c
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    65
  $ hg cat -r "desc(symlink)" b/a
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    66
  b/a: no such file in rev bc151a1f53bd
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    67
  [1]
15c6eb0a51bd context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 18506
diff changeset
    68
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    69
#endif
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    70
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    71
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    72
unbundle tampered bundle
5158
d316124ebbea Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    73
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    74
  $ hg init target
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    75
  $ cd target
16350
4f795f5fbb0b tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents: 15521
diff changeset
    76
  $ hg unbundle "$TESTDIR/bundles/tampered.hg"
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    77
  adding changesets
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    78
  adding manifests
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    79
  adding file changes
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    80
  added 5 changesets with 6 changes to 6 files (+4 heads)
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    81
  (run 'hg heads' to see heads, 'hg merge' to merge)
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    82
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    83
attack .hg/test
7554
11a4eb81fb4f test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5158
diff changeset
    84
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    85
  $ hg manifest -r0
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    86
  .hg/test
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    87
  $ hg update -Cr0
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    88
  abort: path contains illegal component: .hg/test (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
    89
  [255]
7554
11a4eb81fb4f test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5158
diff changeset
    90
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    91
attack foo/.hg/test
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    92
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    93
  $ hg manifest -r1
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    94
  foo/.hg/test
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    95
  $ hg update -Cr1
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    96
  abort: path 'foo/.hg/test' is inside nested repo 'foo' (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
    97
  [255]
7554
11a4eb81fb4f test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5158
diff changeset
    98
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
    99
attack back/test where back symlinks to ..
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   100
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   101
  $ hg manifest -r2
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   102
  back
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   103
  back/test
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   104
#if symlink
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   105
  $ hg update -Cr2
34555
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   106
  back: is both a file and a directory
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   107
  abort: destination manifest contains path conflicts
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
   108
  [255]
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   109
#else
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   110
('back' will be a file and cause some other system specific error)
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   111
  $ hg update -Cr2
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   112
  abort: * (glob)
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   113
  [255]
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   114
#endif
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   115
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   116
attack ../test
7554
11a4eb81fb4f test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5158
diff changeset
   117
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   118
  $ hg manifest -r3
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   119
  ../test
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   120
  $ hg update -Cr3
16908
6a997aacba5d tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   121
  abort: path contains illegal component: ../test (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
   122
  [255]
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   123
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   124
attack /tmp/test
7554
11a4eb81fb4f test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5158
diff changeset
   125
11855
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   126
  $ hg manifest -r4
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   127
  /tmp/test
054b0d9c3f0c tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents: 7681
diff changeset
   128
  $ hg update -Cr4
18506
ef60083b5536 tests: fix for windows - slashes and no serve
Mads Kiilerich <madski@unity3d.com>
parents: 18336
diff changeset
   129
  abort: path contains illegal component: /tmp/test (glob)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11855
diff changeset
   130
  [255]
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16908
diff changeset
   131
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16908
diff changeset
   132
  $ cd ..
33632
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   133
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   134
Test symlink traversal on merge:
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   135
--------------------------------
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   136
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   137
#if symlink
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   138
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   139
set up symlink hell
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   140
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   141
  $ mkdir merge-symlink-out
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   142
  $ hg init merge-symlink
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   143
  $ cd merge-symlink
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   144
  $ touch base
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   145
  $ hg commit -qAm base
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   146
  $ ln -s ../merge-symlink-out a
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   147
  $ hg commit -qAm 'symlink a -> ../merge-symlink-out'
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   148
  $ hg up -q 0
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   149
  $ mkdir a
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   150
  $ touch a/poisoned
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   151
  $ hg commit -qAm 'file a/poisoned'
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   152
  $ hg log -G -T '{rev}: {desc}\n'
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   153
  @  2: file a/poisoned
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   154
  |
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   155
  | o  1: symlink a -> ../merge-symlink-out
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   156
  |/
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   157
  o  0: base
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   158
  
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   159
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   160
try trivial merge
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   161
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   162
  $ hg up -qC 1
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   163
  $ hg merge 2
34555
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   164
  a: path conflict - a file or link has the same name as a directory
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   165
  the local file has been renamed to a~aa04623eb0c3
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   166
  resolve manually then use 'hg resolve --mark a'
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   167
  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   168
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   169
  [1]
33632
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   170
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   171
try rebase onto other revision: cache of audited paths should be discarded,
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   172
and the rebase should fail (issue5628)
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   173
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   174
  $ hg up -qC 2
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   175
  $ hg rebase -s 2 -d 1 --config extensions.rebase=
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   176
  rebasing 2:e73c21d6b244 "file a/poisoned" (tip)
34555
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   177
  a: path conflict - a file or link has the same name as a directory
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   178
  the local file has been renamed to a~aa04623eb0c3
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   179
  resolve manually then use 'hg resolve --mark a'
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   180
  unresolved conflicts (see hg resolve, then hg rebase --continue)
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   181
  [1]
33632
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   182
  $ ls ../merge-symlink-out
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   183
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   184
  $ cd ..
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   185
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   186
Test symlink traversal on update:
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   187
---------------------------------
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   188
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   189
  $ mkdir update-symlink-out
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   190
  $ hg init update-symlink
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   191
  $ cd update-symlink
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   192
  $ ln -s ../update-symlink-out a
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   193
  $ hg commit -qAm 'symlink a -> ../update-symlink-out'
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   194
  $ hg rm a
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   195
  $ mkdir a && touch a/b
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   196
  $ hg ci -qAm 'file a/b' a/b
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   197
  $ hg up -qC 0
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   198
  $ hg rm a
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   199
  $ mkdir a && touch a/c
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   200
  $ hg ci -qAm 'rm a, file a/c'
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   201
  $ hg log -G -T '{rev}: {desc}\n'
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   202
  @  2: rm a, file a/c
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   203
  |
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   204
  | o  1: file a/b
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   205
  |/
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   206
  o  0: symlink a -> ../update-symlink-out
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   207
  
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   208
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   209
try linear update where symlink already exists:
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   210
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   211
  $ hg up -qC 0
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   212
  $ hg up 1
34555
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   213
  a: is both a file and a directory
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   214
  abort: destination manifest contains path conflicts
33632
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   215
  [255]
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   216
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   217
try linear update including symlinked directory and its content: paths are
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   218
audited first by calculateupdates(), where no symlink is created so both
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   219
'a' and 'a/b' are taken as good paths. still applyupdates() should fail.
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   220
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   221
  $ hg up -qC null
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   222
  $ hg up 1
34555
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   223
  a: is both a file and a directory
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   224
  abort: destination manifest contains path conflicts
33633
20bac46f7744 pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents: 33632
diff changeset
   225
  [255]
33632
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   226
  $ ls ../update-symlink-out
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   227
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   228
try branch update replacing directory with symlink, and its content: the
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   229
path 'a' is audited as a directory first, which should be audited again as
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   230
a symlink.
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   231
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   232
  $ rm -f a
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   233
  $ hg up -qC 2
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   234
  $ hg up 1
34555
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   235
  a: is both a file and a directory
989e884d1be9 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com>
parents: 33633
diff changeset
   236
  abort: destination manifest contains path conflicts
33633
20bac46f7744 pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents: 33632
diff changeset
   237
  [255]
33632
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   238
  $ ls ../update-symlink-out
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   239
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   240
  $ cd ..
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   241
0134d839444b tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents: 27234
diff changeset
   242
#endif