view tests/test-git-import @ 4540:133a52d70958

Respect locale environment variables on darwin. In python 2.4+ on darwin, locale.getpreferredencoding() returns mac-roman regardless of what LC_CTYPE, LANG etc are set to. This can produce hard-to-notice conversion errors if input text is not in mac-roman. So this patch overrides it with setlocale/getlocale if the environment has been customized, on the assumption that the user has done so deliberately.
author Brendan Cully <brendan@kublai.com>
date Mon, 11 Jun 2007 12:14:31 -0700
parents ad3d5b4367cb
children 826659bd8053
line wrap: on
line source

#!/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