##// END OF EJS Templates
tests: remove unneeded -d flags...
tests: remove unneeded -d flags Many tests fixed the commit date of their changesets at '1000000 0' or similar. However testing with "Mon Jan 12 13:46:40 1970 +0000" is not better than testing with "Thu Jan 01 00:00:00 1970 +0000", which is the default run-tests.py installs. Removing the unnecessary flag removes some clutter and will hopefully make it clearer what the tests are really trying to test. Some tests did not even change their output when the dates were changed, in which case the -d flag was truly irrelevant. Dates used in sequence (such as '0 0', '1 0', etc...) were left alone since they may make the test easier to understand.

File last commit:

r11812:6f12f53a default
r12156:4c94b6d0 default
Show More
test-symlinks.t
253 lines | 4.4 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-symlinks
r11798 $ "$TESTDIR/hghave" symlink || exit 80
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812 == tests added in 0.7 ==
Nicolas Dumazet
tests: unify test-symlinks
r11798
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812 $ hg init test-symlinks-0.7; cd test-symlinks-0.7;
Nicolas Dumazet
tests: unify test-symlinks
r11798 $ touch foo; ln -s foo bar;
import with addremove -- symlink walking should _not_ screwup.
$ hg addremove
adding bar
adding foo
commit -- the symlink should _not_ appear added to dir state
$ hg commit -m 'initial'
$ touch bomb
again, symlink should _not_ show up on dir state
$ hg addremove
adding bomb
Assert screamed here before, should go by without consequence
$ hg commit -m 'is there a bug?'
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812 $ cd ..
Nicolas Dumazet
tests: unify test-symlinks
r11798
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812
== fifo & ignore ==
Nicolas Dumazet
tests: unify test-symlinks
r11798 $ hg init test; cd test;
$ mkdir dir
$ touch a.c dir/a.o dir/b.o
test what happens if we want to trick hg
$ hg commit -A -m 0
adding a.c
adding dir/a.o
adding dir/b.o
$ echo "relglob:*.o" > .hgignore
$ rm a.c
$ rm dir/a.o
$ rm dir/b.o
$ mkdir dir/a.o
$ ln -s nonexist dir/b.o
$ mkfifo a.c
it should show a.c, dir/a.o and dir/b.o deleted
$ hg status
M dir/b.o
! a.c
! dir/a.o
? .hgignore
$ hg status a.c
a.c: unsupported file type (type is fifo)
! a.c
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812 $ cd ..
== symlinks from outside the tree ==
Nicolas Dumazet
tests: unify test-symlinks
r11798
test absolute path through symlink outside repo
$ p=`pwd`
$ hg init x
$ ln -s x y
$ cd x
$ touch f
$ hg add f
$ hg status "$p"/y/f
A f
try symlink outside repo to file inside
$ ln -s x/f ../z
this should fail
$ hg status ../z && { echo hg mistakenly exited with status 0; exit 1; } || :
abort: ../z not under root
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812 $ cd ..
Nicolas Dumazet
tests: unify test-symlinks
r11798
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812
== cloning symlinks ==
$ hg init clone; cd clone;
Nicolas Dumazet
tests: unify test-symlinks
r11798
try cloning symlink in a subdir
1. commit a symlink
$ mkdir -p a/b/c
$ cd a/b/c
$ ln -s /path/to/symlink/source demo
$ cd ../../..
$ hg stat
? a/b/c/demo
$ hg commit -A -m 'add symlink in a/b/c subdir'
adding a/b/c/demo
2. clone it
$ cd ..
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812 $ hg clone clone clonedest
Nicolas Dumazet
tests: unify test-symlinks
r11798 updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812
== symlink and git diffs ==
Nicolas Dumazet
tests: unify test-symlinks
r11798 git symlink diff
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812 $ cd clonedest
Nicolas Dumazet
tests: unify test-symlinks
r11798 $ hg diff --git -r null:tip
diff --git a/a/b/c/demo b/a/b/c/demo
new file mode 120000
--- /dev/null
+++ b/a/b/c/demo
@@ -0,0 +1,1 @@
+/path/to/symlink/source
\ No newline at end of file
$ hg export --git tip > ../sl.diff
import git symlink diff
$ hg rm a/b/c/demo
$ hg commit -m'remove link'
$ hg import ../sl.diff
applying ../sl.diff
$ hg diff --git -r 1:tip
diff --git a/a/b/c/demo b/a/b/c/demo
new file mode 120000
--- /dev/null
+++ b/a/b/c/demo
@@ -0,0 +1,1 @@
+/path/to/symlink/source
\ No newline at end of file
Nicolas Dumazet
tests: merge all 4 test-symlink* into test-symlinks
r11812
== symlinks and addremove ==
directory moved and symlinked
$ mkdir foo
$ touch foo/a
$ hg ci -Ama
adding foo/a
$ mv foo bar
$ ln -s bar foo
now addremove should remove old files
$ hg addremove
adding bar/a
adding foo
removing foo/a
$ cd ..
== root of repository is symlinked ==
$ hg init root
$ ln -s root link
$ cd root
$ echo foo > foo
$ hg status
? foo
$ hg status ../link
? foo
$ cd ..
$ hg init b
$ cd b
$ ln -s nothing dangling
$ hg commit -m 'commit symlink without adding' dangling
abort: dangling: file not tracked!
$ hg add dangling
$ hg commit -m 'add symlink'
$ hg tip -v
changeset: 0:cabd88b706fc
tag: tip
user: test
date: Thu Jan 01 00:00:00 1970 +0000
files: dangling
description:
add symlink
$ hg manifest --debug
2564acbe54bbbedfbf608479340b359f04597f80 644 @ dangling
$ $TESTDIR/readlink.py dangling
dangling -> nothing
$ rm dangling
$ ln -s void dangling
$ hg commit -m 'change symlink'
$ $TESTDIR/readlink.py dangling
dangling -> void
modifying link
$ rm dangling
$ ln -s empty dangling
$ $TESTDIR/readlink.py dangling
dangling -> empty
reverting to rev 0:
$ hg revert -r 0 -a
reverting dangling
$ $TESTDIR/readlink.py dangling
dangling -> nothing
backups:
$ $TESTDIR/readlink.py *.orig
dangling.orig -> empty
$ rm *.orig
$ hg up -C
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
copies
$ hg cp -v dangling dangling2
copying dangling to dangling2
$ hg st -Cmard
A dangling2
dangling
$ $TESTDIR/readlink.py dangling dangling2
dangling -> void
dangling2 -> void
issue995
$ hg up -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ mkdir dir
$ ln -s dir dirlink
$ hg ci -qAm 'add dirlink'
$ mkdir newdir
$ mv dir newdir/dir
$ mv dirlink newdir/dirlink
$ hg mv -A dirlink newdir/dirlink