view tests/test-patch-offset @ 12039:18e1e7520b67 stable

alias: make shadowing behavior more consistent (issue2054) Currently, given an alias like the following: [alias] summary = summary --remote The alias might be executed - or it might not - depending on the order of the cmdtable dict. This happens because cmdalias gets assigned back to the cmdtable like so: cmdtable['summary'] = ... Yet '^summary|sum' is still in the table, so which one cmdutil.findcmd() chooses isn't deterministic. This patch makes cmdalias assign back to '^summary|sum'. It uses the same cmdtable key lookup that extensions.wrapcommand() does.
author Brodie Rao <brodie@bitheap.org>
date Sat, 21 Aug 2010 22:48:14 -0400
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