tests/test-symlinks.t
author Stepan Koltsov <stepancheg@yandex-team.ru>
Fri, 01 Jul 2011 23:12:52 +0400
changeset 14855 f33579435378
parent 12399 4fee1fd3de9a
child 15797 c7a8164c61ab
permissions -rw-r--r--
eol: fix missing trailing newlines in comitted files Some text editors (Eclipse, for example) do not add trailing newlines, so diffs often contain annoying "\ No newline at the end of file". This patch to eol extension simply adds trailing newline on commit.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
     1
  $ "$TESTDIR/hghave" symlink || exit 80
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
     2
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
     3
== tests added in 0.7 ==
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
     4
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
     5
  $ hg init test-symlinks-0.7; cd test-symlinks-0.7;
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
     6
  $ touch foo; ln -s foo bar;
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
     7
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
     8
import with addremove -- symlink walking should _not_ screwup.
4882
25d753efd48e test-symlink-basic: require symlinks availability
Patrick Mezard <pmezard@gmail.com>
parents: 4137
diff changeset
     9
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    10
  $ hg addremove
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    11
  adding bar
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    12
  adding foo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    13
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    14
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
    15
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    16
  $ hg commit -m 'initial'
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    17
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    18
  $ touch bomb
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    19
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    20
again, symlink should _not_ show up on dir state
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    21
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    22
  $ hg addremove
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    23
  adding bomb
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    24
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    25
Assert screamed here before, should go by without consequence
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    26
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    27
  $ 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
    28
  $ cd ..
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    29
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    30
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    31
== fifo & ignore ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    32
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    33
  $ hg init test; cd test;
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    34
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    35
  $ mkdir dir
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    36
  $ touch a.c dir/a.o dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    37
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    38
test what happens if we want to trick hg
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
  $ hg commit -A -m 0
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    41
  adding a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    42
  adding dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    43
  adding dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    44
  $ echo "relglob:*.o" > .hgignore
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    45
  $ rm a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    46
  $ rm dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    47
  $ rm dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    48
  $ mkdir dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    49
  $ ln -s nonexist dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    50
  $ mkfifo a.c
1408
5010207c3527 symlink unit test
Matthew Elder <sseses@gmail.com>
parents:
diff changeset
    51
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    52
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
    53
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    54
  $ hg status
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    55
  M dir/b.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    56
  ! a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    57
  ! dir/a.o
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    58
  ? .hgignore
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    59
  $ hg status a.c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    60
  a.c: unsupported file type (type is fifo)
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    61
  ! a.c
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    62
  $ cd ..
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    63
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    64
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    65
== symlinks from outside the tree ==
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    66
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    67
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
    68
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    69
  $ p=`pwd`
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    70
  $ hg init x
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    71
  $ ln -s x y
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    72
  $ cd x
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    73
  $ touch f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    74
  $ hg add f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    75
  $ hg status "$p"/y/f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    76
  A f
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    77
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    78
try symlink outside repo to file inside
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    79
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    80
  $ ln -s x/f ../z
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    81
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    82
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
    83
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    84
  $ hg status ../z && { echo hg mistakenly exited with status 0; exit 1; } || :
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    85
  abort: ../z not under root
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    86
  $ cd ..
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    87
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    88
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    89
== cloning symlinks ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
    90
  $ hg init clone; cd clone;
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    91
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    92
try cloning symlink in a subdir
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    93
1. commit a symlink
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    94
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    95
  $ mkdir -p a/b/c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    96
  $ cd a/b/c
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    97
  $ ln -s /path/to/symlink/source demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    98
  $ cd ../../..
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
    99
  $ hg stat
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   100
  ? a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   101
  $ 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
   102
  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
   103
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   104
2. clone it
4137
26596a6b6518 Create the parent directory when checking out symlinks.
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 3988
diff changeset
   105
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   106
  $ cd ..
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   107
  $ hg clone clone clonedest
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   108
  updating to branch default
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   109
  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
   110
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   111
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   112
== symlink and git diffs ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   113
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   114
git symlink diff
4137
26596a6b6518 Create the parent directory when checking out symlinks.
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 3988
diff changeset
   115
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   116
  $ cd clonedest
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   117
  $ hg diff --git -r null:tip
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   118
  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
   119
  new file mode 120000
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   120
  --- /dev/null
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   121
  +++ b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   122
  @@ -0,0 +1,1 @@
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   123
  +/path/to/symlink/source
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   124
  \ No newline at end of file
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   125
  $ hg export --git tip > ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   126
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   127
import git symlink diff
5116
35d47b06d4e3 patch: add git symlink support
Brendan Cully <brendan@kublai.com>
parents: 4882
diff changeset
   128
11798
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   129
  $ hg rm a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   130
  $ hg commit -m'remove link'
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   131
  $ hg import ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   132
  applying ../sl.diff
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   133
  $ hg diff --git -r 1:tip
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   134
  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
   135
  new file mode 120000
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   136
  --- /dev/null
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   137
  +++ b/a/b/c/demo
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   138
  @@ -0,0 +1,1 @@
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   139
  +/path/to/symlink/source
1ab3d8977bdf tests: unify test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10775
diff changeset
   140
  \ 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
   141
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   142
== symlinks and addremove ==
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   143
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   144
directory moved and symlinked
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   145
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   146
  $ mkdir foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   147
  $ touch foo/a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   148
  $ hg ci -Ama
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   149
  adding foo/a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   150
  $ mv foo bar
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   151
  $ ln -s bar foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   152
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   153
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
   154
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   155
  $ hg addremove
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   156
  adding bar/a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   157
  adding foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   158
  removing foo/a
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   159
  $ cd ..
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   160
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   161
== 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
   162
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   163
  $ hg init root
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   164
  $ ln -s root link
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   165
  $ cd root
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   166
  $ echo foo > foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   167
  $ hg status
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   168
  ? foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   169
  $ hg status ../link
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   170
  ? foo
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   171
  $ cd ..
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   172
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   173
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   174
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   175
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   176
  $ hg init b
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   177
  $ cd b
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   178
  $ ln -s nothing dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   179
  $ 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
   180
  abort: dangling: file not tracked!
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11812
diff changeset
   181
  [255]
11812
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   182
  $ hg add dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   183
  $ 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
   184
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   185
  $ hg tip -v
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   186
  changeset:   0:cabd88b706fc
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   187
  tag:         tip
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   188
  user:        test
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   189
  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
   190
  files:       dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   191
  description:
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   192
  add symlink
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
  
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   195
  $ hg manifest --debug
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   196
  2564acbe54bbbedfbf608479340b359f04597f80 644 @ dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   197
  $ $TESTDIR/readlink.py dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   198
  dangling -> nothing
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   199
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   200
  $ rm dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   201
  $ ln -s void dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   202
  $ hg commit -m 'change symlink'
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   203
  $ $TESTDIR/readlink.py dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   204
  dangling -> void
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   205
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   206
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   207
modifying link
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
  $ rm dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   210
  $ ln -s empty dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   211
  $ $TESTDIR/readlink.py dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   212
  dangling -> empty
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   213
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   214
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   215
reverting to rev 0:
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   216
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   217
  $ 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
   218
  reverting dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   219
  $ $TESTDIR/readlink.py dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   220
  dangling -> nothing
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   221
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   222
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   223
backups:
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   224
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   225
  $ $TESTDIR/readlink.py *.orig
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   226
  dangling.orig -> empty
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   227
  $ rm *.orig
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   228
  $ hg up -C
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   229
  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
   230
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   231
copies
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   232
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   233
  $ 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
   234
  copying dangling to dangling2
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   235
  $ hg st -Cmard
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   236
  A dangling2
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   237
    dangling
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   238
  $ $TESTDIR/readlink.py dangling dangling2
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   239
  dangling -> void
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   240
  dangling2 -> void
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   241
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   242
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12316
diff changeset
   243
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
   244
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   245
  $ hg up -C
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   246
  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
   247
  $ mkdir dir
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   248
  $ ln -s dir dirlink
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   249
  $ 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
   250
  $ mkdir newdir
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   251
  $ mv dir newdir/dir
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   252
  $ mv dirlink newdir/dirlink
6f12f53ae795 tests: merge all 4 test-symlink* into test-symlinks
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11798
diff changeset
   253
  $ 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
   254