view tests/test-patch-offset @ 11148:a912f26777d3

merge: introduce tool.check parameter tool.check is a list of check options, and can be used in place of tool.checkchanged and tool.checkconflicts: Equivalences: tool.checkchanged = yes tool.checkconflicts = no tool.check = changed tool.checkchanged = no tool.checkconflicts = yes tool.check = conflicts tool.checkchanged = yes tool.checkconflicts = yes tool.check = changed, conflicts Add _toollist() wrapper for ui.configlist() to implement this consistently. checkchanged and checkconflicts are still supported, but check is preferred for implementing new check options.
author David Champion <dgc@uchicago.edu>
date Mon, 10 May 2010 11:04:56 -0500
parents 0d8577e1f56b
children
line wrap: on
line source

#!/bin/sh

cat > writepatterns.py <<EOF
import sys

path = sys.argv[1]
patterns = sys.argv[2:]

fp = file(path, 'wb')
for pattern in patterns:
    count = int(pattern[0:-1])
    char = pattern[-1] + '\n'
    fp.write(char*count)
fp.close()
EOF

echo % prepare repo
hg init a
cd a

# These initial lines of Xs were not in the original file used to generate
# the patch.  So all the patch hunks need to be applied to a constant offset
# within this file.  If the offset isn't tracked then the hunks can be
# applied to the wrong lines of this file.
python ../writepatterns.py a 34X 10A 1B 10A 1C 10A 1B 10A 1D 10A 1B 10A 1E 10A 1B 10A
hg commit -Am adda

# This is a cleaner patch generated via diff
# In this case it reproduces the problem when
# the output of hg export does not
echo % import patch
hg import -v -m 'b' -d '2 0' - <<EOF
--- a/a	2009-12-08 19:26:17.000000000 -0800
+++ b/a	2009-12-08 19:26:17.000000000 -0800
@@ -9,7 +9,7 @@
 A
 A
 B
-A
+a
 A
 A
 A
@@ -53,7 +53,7 @@
 A
 A
 B
-A
+a
 A
 A
 A
@@ -75,7 +75,7 @@
 A
 A
 B
-A
+a
 A
 A
 A
EOF

echo % compare imported changes against reference file
python ../writepatterns.py aref 34X 10A 1B 1a 9A 1C 10A 1B 10A 1D 10A 1B 1a 9A 1E 10A 1B 1a 9A
diff aref a