mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
51ca48048e
On some systems cp cannot create/preserve hardlinks. Use util.copyfiles instead, after making sure it actually does create hardlinks.
83 lines
1.2 KiB
Bash
Executable File
83 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# some implementations of cp can't create hardlinks
|
|
cat > cp.py <<EOF
|
|
from mercurial import util
|
|
import sys
|
|
util.copyfiles(sys.argv[1], sys.argv[2], hardlink=True)
|
|
EOF
|
|
|
|
# test hardlinking outside hg
|
|
mkdir x
|
|
echo foo > x/a
|
|
|
|
python cp.py x y
|
|
echo bar >> y/a
|
|
echo % no diff if hardlink
|
|
diff x/a y/a
|
|
|
|
# test mq hardlinking
|
|
echo "[extensions]" >> $HGRCPATH
|
|
echo "mq=" >> $HGRCPATH
|
|
|
|
echo % init
|
|
hg init a
|
|
cd a
|
|
|
|
hg qimport -n foo - << EOF
|
|
# HG changeset patch
|
|
# Date 1 0
|
|
diff -r 2588a8b53d66 a
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/a Wed Jul 23 15:54:29 2008 +0200
|
|
@@ -0,0 +1,1 @@
|
|
+a
|
|
EOF
|
|
|
|
hg qpush
|
|
|
|
cd ..
|
|
python cp.py a b
|
|
cd b
|
|
|
|
hg qimport -n bar - << EOF
|
|
# HG changeset patch
|
|
# Date 2 0
|
|
diff -r 2588a8b53d66 a
|
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
|
+++ b/b Wed Jul 23 15:54:29 2008 +0200
|
|
@@ -0,0 +1,1 @@
|
|
+b
|
|
EOF
|
|
|
|
hg qpush
|
|
|
|
cat .hg/patches/status
|
|
echo %
|
|
cat .hg/patches/series
|
|
echo %%%
|
|
cat ../a/.hg/patches/status
|
|
echo %
|
|
cat ../a/.hg/patches/series
|
|
|
|
# test tags hardlinking
|
|
hg qdel -r qbase:qtip
|
|
|
|
hg tag -l lfoo
|
|
hg tag foo
|
|
|
|
cd ..
|
|
python cp.py b c
|
|
cd c
|
|
|
|
hg tag -l -r 0 lbar
|
|
hg tag -r 0 bar
|
|
echo %%%
|
|
cat .hgtags
|
|
echo %
|
|
cat .hg/localtags
|
|
echo %%%
|
|
cat ../b/.hgtags
|
|
echo %
|
|
cat ../b/.hg/localtags
|