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 |
|
|
52 | heads, ret = self.gitread('git rev-parse --branches --remotes') | |
48 |
|
|
53 | heads = heads.splitlines() | |
49 | else: |
|
54 | else: | |
50 |
|
|
55 | heads, ret = self.gitread("git rev-parse --verify %s" % self.rev) | |
51 |
|
|
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 |
|
|
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