|
|
#!/bin/sh
|
|
|
|
|
|
hg init a
|
|
|
cd a
|
|
|
|
|
|
echo % new file
|
|
|
hg import -mnew - <<EOF
|
|
|
diff --git a/new b/new
|
|
|
new file mode 100644
|
|
|
index 0000000..7898192
|
|
|
--- /dev/null
|
|
|
+++ b/new
|
|
|
@@ -0,0 +1 @@
|
|
|
+a
|
|
|
EOF
|
|
|
|
|
|
echo % new empty file
|
|
|
hg import -mempty - <<EOF
|
|
|
diff --git a/empty b/empty
|
|
|
new file mode 100644
|
|
|
EOF
|
|
|
hg locate empty
|
|
|
|
|
|
echo % chmod +x
|
|
|
hg import -msetx - <<EOF
|
|
|
diff --git a/new b/new
|
|
|
old mode 100644
|
|
|
new mode 100755
|
|
|
EOF
|
|
|
|
|
|
test -x new || echo failed
|
|
|
|
|
|
echo % copy
|
|
|
hg import -mcopy - <<EOF
|
|
|
diff --git a/new b/copy
|
|
|
old mode 100755
|
|
|
new mode 100644
|
|
|
similarity index 100%
|
|
|
copy from new
|
|
|
copy to copy
|
|
|
diff --git a/new b/copyx
|
|
|
similarity index 100%
|
|
|
copy from new
|
|
|
copy to copyx
|
|
|
EOF
|
|
|
|
|
|
test -f copy -a ! -x copy || echo failed
|
|
|
test -x copyx || echo failed
|
|
|
cat copy
|
|
|
hg cat copy
|
|
|
|
|
|
echo % rename
|
|
|
hg import -mrename - <<EOF
|
|
|
diff --git a/copy b/rename
|
|
|
similarity index 100%
|
|
|
rename from copy
|
|
|
rename to rename
|
|
|
EOF
|
|
|
|
|
|
hg locate
|
|
|
|
|
|
echo % delete
|
|
|
hg import -mdelete - <<EOF
|
|
|
diff --git a/copyx b/copyx
|
|
|
deleted file mode 100755
|
|
|
index 7898192..0000000
|
|
|
--- a/copyx
|
|
|
+++ /dev/null
|
|
|
@@ -1 +0,0 @@
|
|
|
-a
|
|
|
EOF
|
|
|
|
|
|
hg locate
|
|
|
test -f copyx && echo failed || true
|
|
|
|
|
|
echo % regular diff
|
|
|
hg import -mregular - <<EOF
|
|
|
diff --git a/rename b/rename
|
|
|
index 7898192..72e1fe3 100644
|
|
|
--- a/rename
|
|
|
+++ b/rename
|
|
|
@@ -1 +1,5 @@
|
|
|
a
|
|
|
+a
|
|
|
+a
|
|
|
+a
|
|
|
+a
|
|
|
EOF
|
|
|
|
|
|
echo % copy and modify
|
|
|
hg import -mcopymod - <<EOF
|
|
|
diff --git a/rename b/copy2
|
|
|
similarity index 80%
|
|
|
copy from rename
|
|
|
copy to copy2
|
|
|
index 72e1fe3..b53c148 100644
|
|
|
--- a/rename
|
|
|
+++ b/copy2
|
|
|
@@ -1,5 +1,5 @@
|
|
|
a
|
|
|
a
|
|
|
-a
|
|
|
+b
|
|
|
a
|
|
|
a
|
|
|
EOF
|
|
|
|
|
|
hg cat copy2
|
|
|
|
|
|
echo % rename and modify
|
|
|
hg import -mrenamemod - <<EOF
|
|
|
diff --git a/copy2 b/rename2
|
|
|
similarity index 80%
|
|
|
rename from copy2
|
|
|
rename to rename2
|
|
|
index b53c148..8f81e29 100644
|
|
|
--- a/copy2
|
|
|
+++ b/rename2
|
|
|
@@ -1,5 +1,5 @@
|
|
|
a
|
|
|
a
|
|
|
b
|
|
|
-a
|
|
|
+c
|
|
|
a
|
|
|
EOF
|
|
|
|
|
|
hg locate copy2
|
|
|
hg cat rename2
|
|
|
|
|
|
echo % one file renamed multiple times
|
|
|
hg import -mmultirenames - <<EOF
|
|
|
diff --git a/rename2 b/rename3
|
|
|
rename from rename2
|
|
|
rename to rename3
|
|
|
diff --git a/rename2 b/rename3-2
|
|
|
rename from rename2
|
|
|
rename to rename3-2
|
|
|
EOF
|
|
|
hg log -vCr. --template '{rev} {files} / {file_copies%filecopy}\n'
|
|
|
|
|
|
hg locate rename2 rename3 rename3-2
|
|
|
hg cat rename3
|
|
|
echo
|
|
|
hg cat rename3-2
|
|
|
|
|
|
echo foo > foo
|
|
|
hg add foo
|
|
|
hg ci -m 'add foo'
|
|
|
echo % binary files and regular patch hunks
|
|
|
hg import -m binaryregular - <<EOF
|
|
|
diff --git a/binary b/binary
|
|
|
new file mode 100644
|
|
|
index 0000000000000000000000000000000000000000..593f4708db84ac8fd0f5cc47c634f38c013fe9e4
|
|
|
GIT binary patch
|
|
|
literal 4
|
|
|
Lc\${NkU|;|M00aO5
|
|
|
|
|
|
diff --git a/foo b/foo2
|
|
|
rename from foo
|
|
|
rename to foo2
|
|
|
EOF
|
|
|
cat foo2
|
|
|
hg manifest --debug | grep binary
|
|
|
|
|
|
echo % many binary files
|
|
|
hg import -m multibinary - <<EOF
|
|
|
diff --git a/mbinary1 b/mbinary1
|
|
|
new file mode 100644
|
|
|
index 0000000000000000000000000000000000000000..593f4708db84ac8fd0f5cc47c634f38c013fe9e4
|
|
|
GIT binary patch
|
|
|
literal 4
|
|
|
Lc\${NkU|;|M00aO5
|
|
|
|
|
|
diff --git a/mbinary2 b/mbinary2
|
|
|
new file mode 100644
|
|
|
index 0000000000000000000000000000000000000000..112363ac1917b417ffbd7f376ca786a1e5fa7490
|
|
|
GIT binary patch
|
|
|
literal 5
|
|
|
Mc\${NkU|\`?^000jF3jhEB
|
|
|
|
|
|
EOF
|
|
|
hg manifest --debug | grep mbinary
|
|
|
|
|
|
echo % filenames with spaces
|
|
|
hg import -m spaces - <<EOF
|
|
|
diff --git a/foo bar b/foo bar
|
|
|
new file mode 100644
|
|
|
index 0000000..257cc56
|
|
|
--- /dev/null
|
|
|
+++ b/foo bar
|
|
|
@@ -0,0 +1 @@
|
|
|
+foo
|
|
|
EOF
|
|
|
cat "foo bar"
|
|
|
|
|
|
|