Merge branch 'nd/gc-auto-background-fix'
[gitweb.git] / git-p4.py
index 2677c89c064d7152451798d29d69b277ede3cbad..215f556c13a72cf7b0cb49ae2a651d43a0b2623b 100755 (executable)
--- a/git-p4.py
+++ b/git-p4.py
@@ -2220,6 +2220,16 @@ def streamOneP4File(self, file, contents):
             text = regexp.sub(r'$\1$', text)
             contents = [ text ]
 
+        try:
+            relPath.decode('ascii')
+        except:
+            encoding = 'utf8'
+            if gitConfig('git-p4.pathEncoding'):
+                encoding = gitConfig('git-p4.pathEncoding')
+            relPath = relPath.decode(encoding, 'replace').encode('utf8', 'replace')
+            if self.verbose:
+                print 'Path with non-ASCII characters detected. Used %s to encode: %s ' % (encoding, relPath)
+
         self.gitStream.write("M %s inline %s\n" % (git_mode, relPath))
 
         # total length...