tests/test-symlinks.t
author Matt Harbison <matt_harbison@yahoo.com>
Sun, 22 Aug 2021 17:59:21 -0400
branchstable
changeset 47866 4162f6b40f2c
parent 47281 6763913fa175
child 48068 bf8837e3d7ce
permissions -rw-r--r--
windows: degrade to py2 behavior when reading a non-symlink as a symlink While waiting for the push to hg-committed in WSL to complete, I ran a `phabimport` from Windows and got this traceback: $ hg phabimport 11313 ** Unknown exception encountered with possibly-broken third-party extension "mercurial_keyring" (version N/A) ** which supports versions unknown of Mercurial. ** Please disable "mercurial_keyring" and try your action again. ** If that fixes the bug please report it to https://foss.heptapod.net/mercurial/mercurial_keyring/issues ** Python 3.9.5 (default, May 6 2021, 17:29:31) [MSC v.1928 64 bit (AMD64)] ** Mercurial Distributed SCM (version 5.9rc1+hg32.0e2f5733563d) ** Extensions loaded: absorb, blackbox, evolve 10.3.3, extdiff, fastannotate, fix, mercurial_keyring, mq, phabblocker 20210126, phabricator, rebase, show, strip, topic 0.22.3 Traceback (most recent call last): File "mercurial.lock", line 279, in _trylock File "mercurial.vfs", line 202, in makelock File "mercurial.util", line 2147, in makelock FileExistsError: [WinError 183] Cannot create a file when that file already exists: b'hp-omen:78348' -> b'C:\\Users\\Matt\\hg/.hg/store/lock' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<string>", line 24, in <module> File "mercurial.dispatch", line 144, in run File "mercurial.dispatch", line 250, in dispatch File "mercurial.dispatch", line 294, in _rundispatch File "mercurial.dispatch", line 470, in _runcatch File "mercurial.dispatch", line 480, in _callcatch File "mercurial.scmutil", line 153, in callcatch File "mercurial.dispatch", line 460, in _runcatchfunc File "mercurial.dispatch", line 1273, in _dispatch File "mercurial.dispatch", line 918, in runcommand File "mercurial.dispatch", line 1285, in _runcommand File "mercurial.dispatch", line 1271, in <lambda> File "mercurial.util", line 1886, in check File "mercurial.util", line 1886, in check File "hgext.mq", line 4239, in mqcommand File "mercurial.util", line 1886, in check File "mercurial.util", line 1886, in check File "hgext.phabricator", line 314, in inner File "hgext.phabricator", line 2222, in phabimport File "hgext.phabricator", line 2123, in readpatch File "hgext.phabricator", line 2199, in _write File "mercurial.localrepo", line 2956, in lock File "mercurial.localrepo", line 2918, in _lock File "mercurial.lock", line 152, in trylock File "mercurial.lock", line 283, in _trylock File "mercurial.lock", line 314, in _readlock File "mercurial.vfs", line 221, in readlock File "mercurial.util", line 2163, in readlock File "mercurial.windows", line 619, in readlink ValueError: not a symbolic link Both exceptions look accurate (the file exists, and the Windows side can't read WSL side symlinks). I didn't try to reproduce this entirely within the Windows side, but we can do better than a cryptic stacktrace. With this change, the same scenario results in this abort: abort: C:\Users\Matt\hg/.hg/store/lock: The file cannot be accessed by the system When both the `push` and `phabimport` are done on the Windows side, it prints a message about waiting for the lock, and successfully applies the patch after the push completes. I'm not sure if there's enough info to be able to convert the abort into the wait scenario. As it stands now, we don't support symlinks on Windows, which requires either a UAC Administrator level process or an opt-in in developer mode, and there are several places where the new symlink on Windows support in py3 was explicitly disabled in order to get tests to pass quicker. Differential Revision: https://phab.mercurial-scm.org/D11333
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 19157
diff changeset
     1
#require symlink
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
     2
47281
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
     3
#testcases dirstate-v1 dirstate-v1-tree dirstate-v2
47129
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 45846
diff changeset
     4
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 45846
diff changeset
     5
#if dirstate-v1-tree
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 45846
diff changeset
     6
#require rust
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 45846
diff changeset
     7
  $ echo '[experimental]' >> $HGRCPATH
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 45846
diff changeset
     8
  $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 45846
diff changeset
     9
#endif
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 45846
diff changeset
    10
47281
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
    11
#if dirstate-v2
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
    12
#require rust
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
    13
  $ echo '[format]' >> $HGRCPATH
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
    14
  $ echo 'exp-dirstate-v2=1' >> $HGRCPATH
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
    15
#endif
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
    16
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    17
== tests added in 0.7 ==
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    18
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    19
  $ hg init test-symlinks-0.7; cd test-symlinks-0.7;
23462
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    20
  $ touch foo; ln -s foo bar; ln -s nonexistent baz
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    21
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    22
import with add and addremove -- symlink walking should _not_ screwup.
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    23
23462
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    24
  $ hg add
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    25
  adding bar
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    26
  adding baz
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    27
  adding foo
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    28
  $ hg forget bar baz foo
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    29
  $ hg addremove
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    30
  adding bar
23462
afa3fbbcabd3 add: use lexists so that broken symbolic links are added
John Coomes <john.coomes@oracle.com>
parents: 22046
diff changeset
    31
  adding baz
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    32
  adding foo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    33
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    34
commit -- the symlink should _not_ appear added to dir state
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    35
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    36
  $ hg commit -m 'initial'
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    37
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    38
  $ touch bomb
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    39
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    40
again, symlink should _not_ show up on dir state
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    41
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    42
  $ hg addremove
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    43
  adding bomb
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    44
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    45
Assert screamed here before, should go by without consequence
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    46
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    47
  $ hg commit -m 'is there a bug?'
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    48
  $ cd ..
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    49
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    50
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    51
== fifo & ignore ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    52
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    53
  $ hg init test; cd test;
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    54
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    55
  $ mkdir dir
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    56
  $ touch a.c dir/a.o dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    57
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    58
test what happens if we want to trick hg
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    59
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    60
  $ hg commit -A -m 0
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    61
  adding a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    62
  adding dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    63
  adding dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    64
  $ echo "relglob:*.o" > .hgignore
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    65
  $ rm a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    66
  $ rm dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    67
  $ rm dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    68
  $ mkdir dir/a.o
17492
973c2b0b403c spelling: nonexistent
timeless@mozdev.org
parents: 16913
diff changeset
    69
  $ ln -s nonexistent dir/b.o
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    70
  $ mkfifo a.c
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    71
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    72
it should show a.c, dir/a.o and dir/b.o deleted
1487
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    73
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    74
  $ hg status
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    75
  M dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    76
  ! a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    77
  ! dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    78
  ? .hgignore
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    79
  $ hg status a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    80
  a.c: unsupported file type (type is fifo)
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    81
  ! a.c
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    82
  $ cd ..
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    83
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    84
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    85
== symlinks from outside the tree ==
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    86
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    87
test absolute path through symlink outside repo
1487
2bc6cd62a29c fix handling of files of unsupported type in the walk code
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1408
diff changeset
    88
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    89
  $ p=`pwd`
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    90
  $ hg init x
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    91
  $ ln -s x y
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    92
  $ cd x
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    93
  $ touch f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    94
  $ hg add f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    95
  $ hg status "$p"/y/f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    96
  A f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    97
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    98
try symlink outside repo to file inside
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    99
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   100
  $ ln -s x/f ../z
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   101
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   102
this should fail
2115
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
   103
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   104
  $ hg status ../z && { echo hg mistakenly exited with status 0; exit 1; } || :
18450
4f9a52858512 scmutil: localize and improve 'not under root' message
Mads Kiilerich <madski@unity3d.com>
parents: 17492
diff changeset
   105
  abort: ../z not under root '$TESTTMP/x'
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   106
  $ cd ..
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   107
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   108
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   109
== cloning symlinks ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   110
  $ hg init clone; cd clone;
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   111
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   112
try cloning symlink in a subdir
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   113
1. commit a symlink
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   114
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   115
  $ mkdir -p a/b/c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   116
  $ cd a/b/c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   117
  $ ln -s /path/to/symlink/source demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   118
  $ cd ../../..
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   119
  $ hg stat
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   120
  ? a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   121
  $ hg commit -A -m 'add symlink in a/b/c subdir'
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   122
  adding a/b/c/demo
2115
fd77b7ee4aac Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails
Jim Meyering <list+hg@meyering.net>
parents: 1620
diff changeset
   123
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   124
2. clone it
4137
26596a6b6518 Create the parent directory when checking out symlinks.
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 3988
diff changeset
   125
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   126
  $ cd ..
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   127
  $ hg clone clone clonedest
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   128
  updating to branch default
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   129
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   130
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   131
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   132
== symlink and git diffs ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   133
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   134
git symlink diff
4137
26596a6b6518 Create the parent directory when checking out symlinks.
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 3988
diff changeset
   135
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   136
  $ cd clonedest
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   137
  $ hg diff --git -r null:tip
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   138
  diff --git a/a/b/c/demo b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   139
  new file mode 120000
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   140
  --- /dev/null
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   141
  +++ b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   142
  @@ -0,0 +1,1 @@
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   143
  +/path/to/symlink/source
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   144
  \ No newline at end of file
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   145
  $ hg export --git tip > ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   146
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   147
import git symlink diff
5116
35d47b06d4e3 patch: add git symlink support
Brendan Cully <brendan@kublai.com>
parents: 4882
diff changeset
   148
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   149
  $ hg rm a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   150
  $ hg commit -m'remove link'
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   151
  $ hg import ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   152
  applying ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   153
  $ hg diff --git -r 1:tip
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   154
  diff --git a/a/b/c/demo b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   155
  new file mode 120000
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   156
  --- /dev/null
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   157
  +++ b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   158
  @@ -0,0 +1,1 @@
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   159
  +/path/to/symlink/source
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   160
  \ No newline at end of file
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   161
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   162
== symlinks and addremove ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   163
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   164
directory moved and symlinked
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   165
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   166
  $ mkdir foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   167
  $ touch foo/a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   168
  $ hg ci -Ama
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   169
  adding foo/a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   170
  $ mv foo bar
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   171
  $ ln -s bar foo
18625
2cbd27f4f3c4 dirstate: walk returns None for files that have a symlink in their path
Durham Goode <durham@fb.com>
parents: 18450
diff changeset
   172
  $ hg status
2cbd27f4f3c4 dirstate: walk returns None for files that have a symlink in their path
Durham Goode <durham@fb.com>
parents: 18450
diff changeset
   173
  ! foo/a
2cbd27f4f3c4 dirstate: walk returns None for files that have a symlink in their path
Durham Goode <durham@fb.com>
parents: 18450
diff changeset
   174
  ? bar/a
2cbd27f4f3c4 dirstate: walk returns None for files that have a symlink in their path
Durham Goode <durham@fb.com>
parents: 18450
diff changeset
   175
  ? foo
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   176
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   177
now addremove should remove old files
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   178
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   179
  $ hg addremove
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   180
  adding bar/a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   181
  adding foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   182
  removing foo/a
19157
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   183
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   184
commit and update back
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   185
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   186
  $ hg ci -mb
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   187
  $ hg up '.^'
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   188
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   189
  $ hg up tip
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   190
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
113681bbef9e manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com>
parents: 18625
diff changeset
   191
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   192
  $ cd ..
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   193
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   194
== root of repository is symlinked ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   195
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   196
  $ hg init root
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   197
  $ ln -s root link
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   198
  $ cd root
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   199
  $ echo foo > foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   200
  $ hg status
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   201
  ? foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   202
  $ hg status ../link
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   203
  ? foo
15797
c7a8164c61ab canonpath: allow canonicalization of non-existant paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12399
diff changeset
   204
  $ hg add foo
c7a8164c61ab canonpath: allow canonicalization of non-existant paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12399
diff changeset
   205
  $ hg cp foo "$TESTTMP/link/bar"
c7a8164c61ab canonpath: allow canonicalization of non-existant paths
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 12399
diff changeset
   206
  foo has not been committed yet, so no copy data will be stored for bar.
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   207
  $ cd ..
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   208
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   209
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   210
  $ hg init b
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   211
  $ cd b
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   212
  $ ln -s nothing dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   213
  $ hg commit -m 'commit symlink without adding' dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   214
  abort: dangling: file not tracked!
45846
96ca817ec192 errors: raise InputError when given non-existent paths etc
Martin von Zweigbergk <martinvonz@google.com>
parents: 25472
diff changeset
   215
  [10]
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   216
  $ hg add dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   217
  $ hg commit -m 'add symlink'
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   218
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   219
  $ hg tip -v
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   220
  changeset:   0:cabd88b706fc
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   221
  tag:         tip
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   222
  user:        test
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   223
  date:        Thu Jan 01 00:00:00 1970 +0000
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   224
  files:       dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   225
  description:
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   226
  add symlink
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   227
  
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   228
  
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   229
  $ hg manifest --debug
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   230
  2564acbe54bbbedfbf608479340b359f04597f80 644 @ dangling
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23462
diff changeset
   231
  $ readlink.py dangling
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   232
  dangling -> nothing
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   233
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   234
  $ rm dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   235
  $ ln -s void dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   236
  $ hg commit -m 'change symlink'
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23462
diff changeset
   237
  $ readlink.py dangling
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   238
  dangling -> void
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   239
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   240
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   241
modifying link
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   242
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   243
  $ rm dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   244
  $ ln -s empty dangling
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23462
diff changeset
   245
  $ readlink.py dangling
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   246
  dangling -> empty
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   247
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   248
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   249
reverting to rev 0:
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   250
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   251
  $ hg revert -r 0 -a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   252
  reverting dangling
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23462
diff changeset
   253
  $ readlink.py dangling
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   254
  dangling -> nothing
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   255
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   256
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   257
backups:
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   258
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23462
diff changeset
   259
  $ readlink.py *.orig
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   260
  dangling.orig -> empty
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   261
  $ rm *.orig
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   262
  $ hg up -C
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   263
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   264
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   265
copies
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   266
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   267
  $ hg cp -v dangling dangling2
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   268
  copying dangling to dangling2
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   269
  $ hg st -Cmard
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   270
  A dangling2
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   271
    dangling
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 23462
diff changeset
   272
  $ readlink.py dangling dangling2
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   273
  dangling -> void
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   274
  dangling2 -> void
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   275
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   276
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12316
diff changeset
   277
Issue995: hg copy -A incorrectly handles symbolic links
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   278
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   279
  $ hg up -C
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   280
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   281
  $ mkdir dir
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   282
  $ ln -s dir dirlink
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   283
  $ hg ci -qAm 'add dirlink'
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   284
  $ mkdir newdir
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   285
  $ mv dir newdir/dir
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   286
  $ mv dirlink newdir/dirlink
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   287
  $ hg mv -A dirlink newdir/dirlink
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   288
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   289
  $ cd ..