comparison hgext/convert/git.py @ 10282:08a0f04b56bd

many, many trivial check-code fixups
author Matt Mackall <mpm@selenic.com>
date Mon, 25 Jan 2010 00:05:27 -0600
parents 25e572394f5c
children 02d6149a480b
comparison
equal deleted inserted replaced
10281:e7d3b509af8b 10282:08a0f04b56bd
41 41
42 self.path = path 42 self.path = path
43 43
44 def getheads(self): 44 def getheads(self):
45 if not self.rev: 45 if not self.rev:
46 return self.gitcmd('git rev-parse --branches --remotes').read().splitlines() 46 fh = self.gitcmd('git rev-parse --branches --remotes')
47 return fh.read().splitlines()
47 else: 48 else:
48 fh = self.gitcmd("git rev-parse --verify %s" % self.rev) 49 fh = self.gitcmd("git rev-parse --verify %s" % self.rev)
49 return [fh.read()[:-1]] 50 return [fh.read()[:-1]]
50 51
51 def catfile(self, rev, type): 52 def catfile(self, rev, type):
52 if rev == "0" * 40: raise IOError() 53 if rev == "0" * 40:
54 raise IOError()
53 fh = self.gitcmd("git cat-file %s %s" % (type, rev)) 55 fh = self.gitcmd("git cat-file %s %s" % (type, rev))
54 return fh.read() 56 return fh.read()
55 57
56 def getfile(self, name, rev): 58 def getfile(self, name, rev):
57 return self.catfile(rev, "blob") 59 return self.catfile(rev, "blob")
84 return (changes, {}) 86 return (changes, {})
85 87
86 def getcommit(self, version): 88 def getcommit(self, version):
87 c = self.catfile(version, "commit") # read the commit hash 89 c = self.catfile(version, "commit") # read the commit hash
88 end = c.find("\n\n") 90 end = c.find("\n\n")
89 message = c[end+2:] 91 message = c[end + 2:]
90 message = self.recode(message) 92 message = self.recode(message)
91 l = c[:end].splitlines() 93 l = c[:end].splitlines()
92 parents = [] 94 parents = []
93 author = committer = None 95 author = committer = None
94 for e in l[1:]: 96 for e in l[1:]:
103 p = v.split() 105 p = v.split()
104 tm, tz = p[-2:] 106 tm, tz = p[-2:]
105 committer = " ".join(p[:-2]) 107 committer = " ".join(p[:-2])
106 if committer[0] == "<": committer = committer[1:-1] 108 if committer[0] == "<": committer = committer[1:-1]
107 committer = self.recode(committer) 109 committer = self.recode(committer)
108 if n == "parent": parents.append(v) 110 if n == "parent":
111 parents.append(v)
109 112
110 if committer and committer != author: 113 if committer and committer != author:
111 message += "\ncommitter: %s\n" % committer 114 message += "\ncommitter: %s\n" % committer
112 tzs, tzh, tzm = tz[-5:-4] + "1", tz[-4:-2], tz[-2:] 115 tzs, tzh, tzm = tz[-5:-4] + "1", tz[-4:-2], tz[-2:]
113 tz = -int(tzs) * (int(tzh) * 3600 + int(tzm)) 116 tz = -int(tzs) * (int(tzh) * 3600 + int(tzm))
143 m, f = l[:-1].split("\t") 146 m, f = l[:-1].split("\t")
144 changes.append(f) 147 changes.append(f)
145 fh.close() 148 fh.close()
146 else: 149 else:
147 fh = self.gitcmd('git diff-tree --name-only --root -r %s "%s^%s" --' 150 fh = self.gitcmd('git diff-tree --name-only --root -r %s "%s^%s" --'
148 % (version, version, i+1)) 151 % (version, version, i + 1))
149 changes = [f.rstrip('\n') for f in fh] 152 changes = [f.rstrip('\n') for f in fh]
150 fh.close() 153 fh.close()
151 154
152 return changes 155 return changes