Show More
@@ -28,26 +28,18 b' class convert_git:' | |||
|
28 | 28 | self.path = path |
|
29 | 29 | |
|
30 | 30 | def getheads(self): |
|
31 |
|
|
|
32 | return [h] | |
|
31 | return [file(self.path + "/HEAD").read()[:-1]] | |
|
33 | 32 | |
|
34 | 33 | def catfile(self, rev, type): |
|
35 | 34 | if rev == "0" * 40: raise IOError() |
|
36 | path = os.getcwd() | |
|
37 | os.chdir(self.path) | |
|
38 | fh = os.popen("git-cat-file %s %s 2>/dev/null" % (type, rev)) | |
|
39 | os.chdir(path) | |
|
35 | fh = os.popen("GIT_DIR=%s git-cat-file %s %s 2>/dev/null" % (self.path, type, rev)) | |
|
40 | 36 | return fh.read() |
|
41 | 37 | |
|
42 | 38 | def getfile(self, name, rev): |
|
43 | 39 | return self.catfile(rev, "blob") |
|
44 | 40 | |
|
45 | 41 | def getchanges(self, version): |
|
46 | path = os.getcwd() | |
|
47 | os.chdir(self.path) | |
|
48 | fh = os.popen("git-diff-tree --root -m -r %s" % (version)) | |
|
49 | os.chdir(path) | |
|
50 | ||
|
42 | fh = os.popen("GIT_DIR=%s git-diff-tree --root -m -r %s" % (self.path, version)) | |
|
51 | 43 | changes = [] |
|
52 | 44 | for l in fh: |
|
53 | 45 | if "\t" not in l: continue |
@@ -83,9 +75,9 b' class convert_git:' | |||
|
83 | 75 | |
|
84 | 76 | def gettags(self): |
|
85 | 77 | tags = {} |
|
86 |
for f in os.listdir(self.path + "/ |
|
|
78 | for f in os.listdir(self.path + "/refs/tags"): | |
|
87 | 79 | try: |
|
88 |
h = file(self.path + "/ |
|
|
80 | h = file(self.path + "/refs/tags/" + f).read().strip() | |
|
89 | 81 | tags[f] = h |
|
90 | 82 | except: |
|
91 | 83 | pass |
@@ -99,8 +91,7 b' class convert_mercurial:' | |||
|
99 | 91 | |
|
100 | 92 | def getheads(self): |
|
101 | 93 | h = self.repo.changelog.heads() |
|
102 |
|
|
|
103 | return h | |
|
94 | return [ hg.hex(x) for x in h ] | |
|
104 | 95 | |
|
105 | 96 | def putfile(self, f, e, data): |
|
106 | 97 | self.repo.wfile(f, "w").write(data) |
@@ -155,12 +146,12 b' class convert_mercurial:' | |||
|
155 | 146 | newlines.sort() |
|
156 | 147 | |
|
157 | 148 | if newlines != oldlines: |
|
158 | print "updating tags" | |
|
149 | #print "updating tags" | |
|
159 | 150 | f = self.repo.wfile(".hgtags", "w") |
|
160 | 151 | f.write("".join(newlines)) |
|
161 | 152 | f.close() |
|
162 | 153 | if not oldlines: self.repo.add([".hgtags"]) |
|
163 | date = "%s 0" % time.mktime(time.gmtime()) | |
|
154 | date = "%s 0" % int(time.mktime(time.gmtime())) | |
|
164 | 155 | self.repo.rawcommit([".hgtags"], "update tags", "convert-repo", |
|
165 | 156 | date, self.repo.changelog.tip(), hg.nullid) |
|
166 | 157 | |
@@ -262,7 +253,7 b' class convert:' | |||
|
262 | 253 | num -= 1 |
|
263 | 254 | if c in self.map: continue |
|
264 | 255 | desc = self.commitcache[c][3].splitlines()[0] |
|
265 | print num, desc | |
|
256 | #print num, desc | |
|
266 | 257 | self.copy(c) |
|
267 | 258 | |
|
268 | 259 | tags = self.source.gettags() |
@@ -275,6 +266,8 b' class convert:' | |||
|
275 | 266 | self.dest.puttags(ctags) |
|
276 | 267 | |
|
277 | 268 | gitpath, hgpath, mapfile = sys.argv[1:] |
|
269 | if os.path.isdir(gitpath + "/.git"): | |
|
270 | gitpath += "/.git" | |
|
278 | 271 | |
|
279 | 272 | c = convert(convert_git(gitpath), convert_mercurial(hgpath), mapfile) |
|
280 | 273 | c.convert() |
General Comments 0
You need to be logged in to leave comments.
Login now