diff options
author | Lars Schneider <larsxschneider@gmail.com> | 2015-09-03 11:14:07 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-09-03 14:11:49 -0700 |
commit | a9e38359e356de7d6397395bdde8af61440262d0 (patch) | |
tree | e498ba7a31b114a52a2b3657a65ace21f8ca2e5f /git-p4.py | |
parent | a17c56c056d5fea0843b429132904c429a900229 (diff) | |
download | git-a9e38359e356de7d6397395bdde8af61440262d0.tar.gz |
git-p4: add config git-p4.pathEncoding
Perforce keeps the encoding of a path as given by the originating OS.
Git expects paths encoded as UTF-8. Add a config to tell git-p4 what
encoding Perforce had used for the paths. This encoding is used to
transcode the paths to UTF-8. As an example, Perforce on Windows often
uses “cp1252” to encode path names.
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-p4.py')
-rwxr-xr-x | git-p4.py | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -2213,6 +2213,17 @@ class P4Sync(Command, P4UserMap): text = regexp.sub(r'$\1$', text) contents = [ text ] + if gitConfig("git-p4.pathEncoding"): + relPath = relPath.decode(gitConfig("git-p4.pathEncoding")).encode('utf8', 'replace') + elif self.verbose: + try: + relPath.decode('ascii') + except: + print ( + "Path with Non-ASCII characters detected and no path encoding defined. " + "Please check the encoding: %s" % relPath + ) + self.gitStream.write("M %s inline %s\n" % (git_mode, relPath)) # total length... |