##// END OF EJS Templates
convert: fix non-ASCII filenames retrieval from git sources (issue 1360)
Patrick Mezard -
r7242:d1dff8c4 default
parent child Browse files
Show More
@@ -56,22 +56,26 b' class convert_git(converter_source):'
56
56
57 def getchanges(self, version):
57 def getchanges(self, version):
58 self.modecache = {}
58 self.modecache = {}
59 fh = self.gitcmd("git diff-tree --root -m -r %s" % version)
59 fh = self.gitcmd("git diff-tree -z --root -m -r %s" % version)
60 changes = []
60 changes = []
61 seen = {}
61 seen = {}
62 for l in fh:
62 entry = None
63 if "\t" not in l:
63 for l in fh.read().split('\x00'):
64 continue
64 if not entry:
65 m, f = l[:-1].split("\t")
65 if not l.startswith(':'):
66 if f in seen:
66 continue
67 entry = l
67 continue
68 continue
68 seen[f] = 1
69 f = l
69 m = m.split()
70 if f not in seen:
70 h = m[3]
71 seen[f] = 1
71 p = (m[1] == "100755")
72 entry = entry.split()
72 s = (m[1] == "120000")
73 h = entry[3]
73 self.modecache[(f, h)] = (p and "x") or (s and "l") or ""
74 p = (entry[1] == "100755")
74 changes.append((f, h))
75 s = (entry[1] == "120000")
76 self.modecache[(f, h)] = (p and "x") or (s and "l") or ""
77 changes.append((f, h))
78 entry = None
75 return (changes, {})
79 return (changes, {})
76
80
77 def getcommit(self, version):
81 def getcommit(self, version):
General Comments 0
You need to be logged in to leave comments. Login now