git-p4: improve path encoding verbose output

If a path with non-ASCII characters is detected then print the
encoding and the encoded string in verbose mode.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Lars Schneider 2015-09-16 14:37:04 +02:00 коммит произвёл Junio C Hamano
Родитель a9e38359e3
Коммит 00a9403a10
1 изменённых файлов: 9 добавлений и 10 удалений

Просмотреть файл

@ -2213,16 +2213,15 @@ 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
)
try:
relPath.decode('ascii')
except:
encoding = 'utf8'
if gitConfig('git-p4.pathEncoding'):
encoding = gitConfig('git-p4.pathEncoding')
relPath = relPath.decode(encoding).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))