The current git-p4 does not handle utf16 files properly. The "p4 print" command, when output to stdout, converts the utf16 file into utf8. That effectively imported the utf16 file as utf8 for git. In other words, git-p4 import a different file compare to file check out by perforce. This breakes my windows build in the company project. The fix is simple, just ask perforce to print the depot file into a real file. This way perforce will not performe the utf16 to utf8 conversion. Git can import the exact same file as perforce checkout. --- contrib/fast-import/git-p4 | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4 index 6b9de9e..5fb1ac7 100755 --- a/contrib/fast-import/git-p4 +++ b/contrib/fast-import/git-p4 @@ -1239,6 +1239,11 @@ class P4Sync(Command, P4UserMap): contents = map(lambda text: re.sub(r'(?i)\$(Id|Header):[^$]*\$',r'$\1$', text), contents) elif file['type'] in ('text+k', 'ktext', 'kxtext', 'unicode+k', 'binary+k'): contents = map(lambda text: re.sub(r'\$(Id|Header|Author|Date|DateTime|Change|File|Revision):[^$\n]*\$',r'$\1$', text), contents) + elif file['type'] == 'utf16': + tmpFile = tempfile.NamedTemporaryFile() + p4CmdList("print -o %s %s"%(tmpFile.name, file['depotFile'])) + contents = [ open(tmpFile.name).read() ] + tmpFile.close() self.gitStream.write("M %s inline %s\n" % (mode, relPath)) -- 1.7.6 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html