X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git_remote_helpers%2Fgit%2Fexporter.py;h=9ee5f96d4ce313f4f94505ff65b560943bfd21cb;hb=b14b969ab98d5dac835e57a2b6b9e9229b2e1c97;hp=f40f9d6a29cda39ee7f989e11ef66cdf3d54d625;hpb=06cfa8a8589740b9dd4820ad1c2eff4b3d968de7;p=git.git diff --git a/git_remote_helpers/git/exporter.py b/git_remote_helpers/git/exporter.py index f40f9d6a2..9ee5f96d4 100644 --- a/git_remote_helpers/git/exporter.py +++ b/git_remote_helpers/git/exporter.py @@ -2,6 +2,8 @@ import os import subprocess import sys +from git_remote_helpers.util import check_call + class GitExporter(object): """An exporter for testgit repositories. @@ -15,7 +17,7 @@ class GitExporter(object): self.repo = repo - def export_repo(self, base): + def export_repo(self, base, refs=None): """Exports a fast-export stream for the given directory. Simply delegates to git fast-epxort and pipes it through sed @@ -23,8 +25,13 @@ class GitExporter(object): default refs/heads. This is to demonstrate how the export data can be stored under it's own ref (using the refspec capability). + + If None, refs defaults to ["HEAD"]. """ + if not refs: + refs = ["HEAD"] + dirname = self.repo.get_base_path(base) path = os.path.abspath(os.path.join(dirname, 'testgit.marks')) @@ -42,12 +49,10 @@ class GitExporter(object): if os.path.exists(path): args.append("--import-marks=" + path) - args.append("HEAD") + args.extend(refs) p1 = subprocess.Popen(args, stdout=subprocess.PIPE) args = ["sed", "s_refs/heads/_" + self.repo.prefix + "_g"] - child = subprocess.Popen(args, stdin=p1.stdout) - if child.wait() != 0: - raise CalledProcessError + check_call(args, stdin=p1.stdout)