view tests/test-update-reverse.out @ 1335:bea6356b8bca

git -> hg conversion script contrib/convert-repo changes: - do not print verbose output so that error messages are seen more easily - Output the date as integer and not as floating point number. - Do not require a ".git" subdirectory to work on, but use the GIT_DIR environment var to specify the git repository. Change is otherwise compatible to the current version and I have tested it by converting the kernel and several git respositories from kernel.org. (Btw, the udev test dir contains a /sys dir with entries which should not be normal dirs and not be normal files. ;-) Thanks again for mercurial, Florian La Roche --- a/contrib/convert-repo +++ b/contrib/convert-repo @@ -28,26 +28,18 @@ self.path = path def getheads(self): - h = file(self.path + "/.git/HEAD").read()[:-1] - return [h] + return [file(self.path + "/HEAD").read()[:-1]] def catfile(self, rev, type): if rev == "0" * 40: raise IOError() - path = os.getcwd() - os.chdir(self.path) - fh = os.popen("git-cat-file %s %s 2>/dev/null" % (type, rev)) - os.chdir(path) + fh = os.popen("GIT_DIR=%s git-cat-file %s %s 2>/dev/null" % (self.path, type, rev)) return fh.read() def getfile(self, name, rev): return self.catfile(rev, "blob") def getchanges(self, version): - path = os.getcwd() - os.chdir(self.path) - fh = os.popen("git-diff-tree --root -m -r %s" % (version)) - os.chdir(path) - + fh = os.popen("GIT_DIR=%s git-diff-tree --root -m -r %s" % (self.path, version)) changes = [] for l in fh: if "\t" not in l: continue @@ -83,9 +75,9 @@ def gettags(self): tags = {} - for f in os.listdir(self.path + "/.git/refs/tags"): + for f in os.listdir(self.path + "/refs/tags"): try: - h = file(self.path + "/.git/refs/tags/" + f).read().strip() + h = file(self.path + "/refs/tags/" + f).read().strip() tags[f] = h except: pass @@ -99,8 +91,7 @@ def getheads(self): h = self.repo.changelog.heads() - h = [ hg.hex(x) for x in h ] - return h + return [ hg.hex(x) for x in h ] def putfile(self, f, e, data): self.repo.wfile(f, "w").write(data) @@ -155,12 +146,12 @@ newlines.sort() if newlines != oldlines: - print "updating tags" + #print "updating tags" f = self.repo.wfile(".hgtags", "w") f.write("".join(newlines)) f.close() if not oldlines: self.repo.add([".hgtags"]) - date = "%s 0" % time.mktime(time.gmtime()) + date = "%s 0" % int(time.mktime(time.gmtime())) self.repo.rawcommit([".hgtags"], "update tags", "convert-repo", date, self.repo.changelog.tip(), hg.nullid) @@ -262,7 +253,7 @@ num -= 1 if c in self.map: continue desc = self.commitcache[c][3].splitlines()[0] - print num, desc + #print num, desc self.copy(c) tags = self.source.gettags() @@ -275,6 +266,8 @@ self.dest.puttags(ctags) gitpath, hgpath, mapfile = sys.argv[1:] +if os.path.isdir(gitpath + "/.git"): + gitpath += "/.git" c = convert(convert_git(gitpath), convert_mercurial(hgpath), mapfile) c.convert() _______________________________________________ Mercurial mailing list Mercurial@selenic.com http://selenic.com/mailman/listinfo/mercurial
author Florian La Roche <laroche@redhat.com>
date Fri, 23 Sep 2005 17:15:36 -0700
parents 67a28636ea64
children 3a0b69ea5708
line wrap: on
line source

Warning: -t and --text is deprecated, please use -m or --message instead.
Main should be gone
a
changeset:   3:91ebc10ed028
tag:         tip
user:        test
date:        Thu Jan  1 00:00:00 1970 +0000
summary:     Added side2

changeset:   2:b932d7dbb1e1
parent:      0:c2eda428b523
user:        test
date:        Thu Jan  1 00:00:00 1970 +0000
summary:     Added side1

changeset:   1:71a760306caf
user:        test
date:        Thu Jan  1 00:00:00 1970 +0000
summary:     Added main

changeset:   0:c2eda428b523
user:        test
date:        Thu Jan  1 00:00:00 1970 +0000
summary:     Added a

Should have two heads, side2 and main
changeset:   3:91ebc10ed028
tag:         tip
user:        test
date:        Thu Jan  1 00:00:00 1970 +0000
summary:     Added side2

changeset:   1:71a760306caf
user:        test
date:        Thu Jan  1 00:00:00 1970 +0000
summary:     Added main

Should show a side1 side2
a
side1
side2
resolving manifests
 force 1 allow None moddirstate True linear False
 ancestor 8515d4bfda76 local 1c0f48f8ece6 remote 0594b9004bae
remote deleted side2, clobbering
remote deleted side1, clobbering
remote created main
getting main
removing side1
removing side2
Should only show a main
a
main