mirror of
https://github.com/newren/git-filter-repo.git
synced 2024-07-06 02:12:17 +02:00
filter-repo: don't hardcode sys.stdout, I'll eventually want to pipe elsewhere
Signed-off-by: Elijah Newren <newren@gmail.com>
This commit is contained in:
parent
11057e874e
commit
392d09d084
@ -65,7 +65,7 @@ class GitElement(object):
|
||||
def __init__(self):
|
||||
self.type = None
|
||||
|
||||
def dump(self):
|
||||
def dump(self, file):
|
||||
raise SystemExit("Unimplemented function: %s.dump()", type(self))
|
||||
|
||||
class Blob(GitElement):
|
||||
@ -75,11 +75,11 @@ class Blob(GitElement):
|
||||
self.data = data
|
||||
self.mark = translate_mark(mark)
|
||||
|
||||
def dump(self):
|
||||
sys.stdout.write('blob\n')
|
||||
sys.stdout.write('mark :%d\n' % self.mark)
|
||||
sys.stdout.write('data %d\n%s' % (len(self.data), self.data))
|
||||
sys.stdout.write('\n')
|
||||
def dump(self, file):
|
||||
file.write('blob\n')
|
||||
file.write('mark :%d\n' % self.mark)
|
||||
file.write('data %d\n%s' % (len(self.data), self.data))
|
||||
file.write('\n')
|
||||
|
||||
class Reset(GitElement):
|
||||
def __init__(self, ref, from_ref = None):
|
||||
@ -88,10 +88,10 @@ class Reset(GitElement):
|
||||
self.ref = ref
|
||||
self.from_ref = from_ref
|
||||
|
||||
def dump(self):
|
||||
sys.stdout.write('reset %s\n' % self.ref)
|
||||
def dump(self, file):
|
||||
file.write('reset %s\n' % self.ref)
|
||||
if self.from_ref:
|
||||
sys.stdout.write('from %s\n' % self.from_ref)
|
||||
file.write('from %s\n' % self.from_ref)
|
||||
|
||||
class FileChanges(object):
|
||||
def __init__(self, filename, mode, mark = None):
|
||||
@ -99,8 +99,8 @@ class FileChanges(object):
|
||||
self.mode = mode
|
||||
self.mark = translate_mark(mark)
|
||||
|
||||
def dump(self):
|
||||
sys.stdout.write('M %s :%d %s\n' % (self.mode, self.mark, self.filename))
|
||||
def dump(self, file):
|
||||
file.write('M %s :%d %s\n' % (self.mode, self.mark, self.filename))
|
||||
|
||||
class Commit(GitElement):
|
||||
def __init__(self, branch,
|
||||
@ -129,22 +129,22 @@ class Commit(GitElement):
|
||||
self.from_commit = None
|
||||
self.merge_commits = [translate_mark(mark) for mark in merge_commits]
|
||||
|
||||
def dump(self):
|
||||
sys.stdout.write('commit %s\n' % self.branch)
|
||||
sys.stdout.write('mark :%d\n' % self.mark)
|
||||
sys.stdout.write('author %s <%s> %s\n' % \
|
||||
def dump(self, file):
|
||||
file.write('commit %s\n' % self.branch)
|
||||
file.write('mark :%d\n' % self.mark)
|
||||
file.write('author %s <%s> %s\n' % \
|
||||
(self.author_name, self.author_email, self.author_date))
|
||||
sys.stdout.write('committer %s <%s> %s\n' % \
|
||||
file.write('committer %s <%s> %s\n' % \
|
||||
(self.committer_name, self.committer_email,
|
||||
self.committer_date))
|
||||
sys.stdout.write('data %d\n%s' % (len(self.message), self.message))
|
||||
file.write('data %d\n%s' % (len(self.message), self.message))
|
||||
if self.from_commit:
|
||||
sys.stdout.write('from :%s\n' % self.from_commit)
|
||||
file.write('from :%s\n' % self.from_commit)
|
||||
for ref in self.merge_commits:
|
||||
sys.stdout.write('merge :%s\n' % ref)
|
||||
file.write('merge :%s\n' % ref)
|
||||
for change in self.file_changes:
|
||||
change.dump()
|
||||
sys.stdout.write('\n')
|
||||
change.dump(file)
|
||||
file.write('\n')
|
||||
|
||||
class FastExportParser(object):
|
||||
def __init__(self,
|
||||
@ -161,6 +161,8 @@ class FastExportParser(object):
|
||||
self.checkpoint_callback = checkpoint_callback
|
||||
self.everything_callback = everything_callback
|
||||
|
||||
self.output = sys.stdout
|
||||
|
||||
def _make_blob(self, t):
|
||||
# Create the Blob object from the parser tokens
|
||||
mark = int(t[1][1:])
|
||||
@ -175,7 +177,7 @@ class FastExportParser(object):
|
||||
self.blob_callback(blob)
|
||||
|
||||
# Now print the resulting blob to stdout
|
||||
blob.dump()
|
||||
blob.dump(self.output)
|
||||
|
||||
# Replace data with its sha1sum to cut down on memory usage
|
||||
# (python parser stores whole resulting parse tree in memory)
|
||||
@ -195,7 +197,7 @@ class FastExportParser(object):
|
||||
self.reset_callback(reset)
|
||||
|
||||
# Now print the resulting reset to stdout
|
||||
reset.dump()
|
||||
reset.dump(self.output)
|
||||
|
||||
def _make_commit(self, t):
|
||||
#
|
||||
@ -269,7 +271,7 @@ class FastExportParser(object):
|
||||
self.commit_callback(reset)
|
||||
|
||||
# Now print the resulting commit to stdout
|
||||
commit.dump()
|
||||
commit.dump(self.output)
|
||||
|
||||
def _setup_parser(self):
|
||||
# Basic setup
|
||||
|
Loading…
Reference in New Issue
Block a user