summaryrefslogtreecommitdiff
path: root/tests/test-merge-symlinks.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-merge-symlinks.t')
-rw-r--r--tests/test-merge-symlinks.t63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test-merge-symlinks.t b/tests/test-merge-symlinks.t
new file mode 100644
index 0000000..9d50146
--- /dev/null
+++ b/tests/test-merge-symlinks.t
@@ -0,0 +1,63 @@
+ $ cat > echo.py <<EOF
+ > #!/usr/bin/env python
+ > import os, sys
+ > try:
+ > import msvcrt
+ > msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
+ > msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
+ > except ImportError:
+ > pass
+ >
+ > for k in ('HG_FILE', 'HG_MY_ISLINK', 'HG_OTHER_ISLINK', 'HG_BASE_ISLINK'):
+ > print k, os.environ[k]
+ > EOF
+
+Create 2 heads containing the same file, once as
+a file, once as a link. Bundle was generated with:
+
+# hg init t
+# cd t
+# echo a > a
+# hg ci -qAm t0 -d '0 0'
+# echo l > l
+# hg ci -qAm t1 -d '1 0'
+# hg up -C 0
+# ln -s a l
+# hg ci -qAm t2 -d '2 0'
+# echo l2 > l2
+# hg ci -qAm t3 -d '3 0'
+
+ $ hg init t
+ $ cd t
+ $ hg -q pull "$TESTDIR/bundles/test-merge-symlinks.hg"
+ $ hg up -C 3
+ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+Merge them and display *_ISLINK vars
+merge heads
+
+ $ hg merge --tool="python ../echo.py"
+ merging l
+ HG_FILE l
+ HG_MY_ISLINK 1
+ HG_OTHER_ISLINK 0
+ HG_BASE_ISLINK 0
+ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+
+Test working directory symlink bit calculation wrt copies,
+especially on non-supporting systems.
+merge working directory
+
+ $ hg up -C 2
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg copy l l2
+ $ HGMERGE="python ../echo.py" hg up 3
+ merging l2
+ HG_FILE l2
+ HG_MY_ISLINK 1
+ HG_OTHER_ISLINK 0
+ HG_BASE_ISLINK 0
+ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
+
+ $ cd ..