##// END OF EJS Templates
convert/git: check status when reading the whole output
Patrick Mezard -
r10986:610f0473 stable
parent child Browse files
Show More
@@ -30,6 +30,11 b' class convert_git(converter_source):'
30 def gitopen(self, s):
30 def gitopen(self, s):
31 return util.popen('GIT_DIR=%s %s' % (self.path, s), 'rb')
31 return util.popen('GIT_DIR=%s %s' % (self.path, s), 'rb')
32
32
33 def gitread(self, s):
34 fh = self.gitopen(s)
35 data = fh.read()
36 return data, fh.close()
37
33 def __init__(self, ui, path, rev=None):
38 def __init__(self, ui, path, rev=None):
34 super(convert_git, self).__init__(ui, path, rev=rev)
39 super(convert_git, self).__init__(ui, path, rev=rev)
35
40
@@ -44,17 +49,22 b' class convert_git(converter_source):'
44
49
45 def getheads(self):
50 def getheads(self):
46 if not self.rev:
51 if not self.rev:
47 fh = self.gitopen('git rev-parse --branches --remotes')
52 heads, ret = self.gitread('git rev-parse --branches --remotes')
48 return fh.read().splitlines()
53 heads = heads.splitlines()
49 else:
54 else:
50 fh = self.gitopen("git rev-parse --verify %s" % self.rev)
55 heads, ret = self.gitread("git rev-parse --verify %s" % self.rev)
51 return [fh.read()[:-1]]
56 heads = [heads[:-1]]
57 if ret:
58 raise util.Abort(_('cannot retrieve git heads'))
59 return heads
52
60
53 def catfile(self, rev, type):
61 def catfile(self, rev, type):
54 if rev == "0" * 40:
62 if rev == "0" * 40:
55 raise IOError()
63 raise IOError()
56 fh = self.gitopen("git cat-file %s %s" % (type, rev))
64 data, ret = self.gitread("git cat-file %s %s" % (type, rev))
57 return fh.read()
65 if ret:
66 raise util.Abort(_('cannot read %r object at %s') % (type, rev))
67 return data
58
68
59 def getfile(self, name, rev):
69 def getfile(self, name, rev):
60 return self.catfile(rev, "blob")
70 return self.catfile(rev, "blob")
General Comments 0
You need to be logged in to leave comments. Login now