diff options
Diffstat (limited to 'git_remote_helpers/git/importer.py')
-rw-r--r-- | git_remote_helpers/git/importer.py | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/git_remote_helpers/git/importer.py b/git_remote_helpers/git/importer.py deleted file mode 100644 index d3f90e1024..0000000000 --- a/git_remote_helpers/git/importer.py +++ /dev/null @@ -1,69 +0,0 @@ -import os -import subprocess - -from git_remote_helpers.util import check_call, check_output - - -class GitImporter(object): - """An importer for testgit repositories. - - This importer simply delegates to git fast-import. - """ - - def __init__(self, repo): - """Creates a new importer for the specified repo. - """ - - self.repo = repo - - def get_refs(self, gitdir): - """Returns a dictionary with refs. - - Note that the keys in the returned dictionary are byte strings as - read from git. - """ - args = ["git", "--git-dir=" + gitdir, "for-each-ref", "refs/heads"] - lines = check_output(args).strip().split('\n'.encode('ascii')) - refs = {} - for line in lines: - value, name = line.split(' '.encode('ascii')) - name = name.strip('commit\t'.encode('ascii')) - refs[name] = value - return refs - - def do_import(self, base): - """Imports a fast-import stream to the given directory. - - Simply delegates to git fast-import. - """ - - dirname = self.repo.get_base_path(base) - if self.repo.local: - gitdir = self.repo.gitpath - else: - gitdir = os.path.abspath(os.path.join(dirname, '.git')) - path = os.path.abspath(os.path.join(dirname, 'testgit.marks')) - - if not os.path.exists(dirname): - os.makedirs(dirname) - - refs_before = self.get_refs(gitdir) - - args = ["git", "--git-dir=" + gitdir, "fast-import", "--quiet", "--export-marks=" + path] - - if os.path.exists(path): - args.append("--import-marks=" + path) - - check_call(args) - - refs_after = self.get_refs(gitdir) - - changed = {} - - for name, value in refs_after.iteritems(): - if refs_before.get(name) == value: - continue - - changed[name] = value - - return changed |