Browse Source

git-p4: keyword flattening fixes

Join the text before looking for keywords.  There is nothing to
prevent the p4 output marshaller from splitting in the middle of a
keyword, although it has never been known to happen.

Also remove the (?i) regexp modifier; perforce keywords are
documented as case-sensitive.

Remove the "\n" end-character match.  I don't know why that is
in there, and every keyword in a fairly large production p4 repository
always ends with a $.

Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Pete Wyckoff 14 years ago committed by Junio C Hamano
parent
commit
cb585a9cda
  1. 8
      contrib/fast-import/git-p4

8
contrib/fast-import/git-p4

@ -1285,9 +1285,13 @@ class P4Sync(Command, P4UserMap):
# even though in theory somebody may want that. # even though in theory somebody may want that.
if type_base in ("text", "unicode", "binary"): if type_base in ("text", "unicode", "binary"):
if "ko" in type_mods: if "ko" in type_mods:
contents = map(lambda text: re.sub(r'(?i)\$(Id|Header):[^$]*\$', r'$\1$', text), contents) text = ''.join(contents)
text = re.sub(r'\$(Id|Header):[^$]*\$', r'$\1$', text)
contents = [ text ]
elif "k" in type_mods: elif "k" in type_mods:
contents = map(lambda text: re.sub(r'\$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$\n]*\$', r'$\1$', text), contents) text = ''.join(contents)
text = re.sub(r'\$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$]*\$', r'$\1$', text)
contents = [ text ]


self.gitStream.write("M %s inline %s\n" % (git_mode, relPath)) self.gitStream.write("M %s inline %s\n" % (git_mode, relPath))



Loading…
Cancel
Save