git-remote-hg: add GitExporter/GitImporter/NonLocalGit
[git/dscho.git] / git_remote_helpers / hg / importer.py
blobff1eabda02b3c0155f1a40988c8b14f7d6369b66
1 import os.path
2 import sys
4 from git_remote_helpers.hg import hgimport
5 from git_remote_helpers.fastimport import processor, parser
8 class GitImporter(object):
9 def __init__(self, repo):
10 self.repo = repo
12 def do_import(self, base):
13 sources = ["-"]
15 dirname = self.repo.get_base_path(base)
17 if not os.path.exists(dirname):
18 os.makedirs(dirname)
20 procc = hgimport.HgImportProcessor(self.repo.ui, self.repo)
22 marks_file = os.path.abspath(os.path.join(dirname, 'hg.marks'))
24 if os.path.exists(marks_file):
25 procc.load_marksfile(marks_file)
27 processor.parseMany(sources, parser.ImportParser, procc)
29 procc.write_marksfile(marks_file)