From a7110de5f5a707cdfd12398e10c3ff5435b16a93 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Sat, 2 Feb 2019 05:52:02 +0100 Subject: [PATCH] filter-repo: make tagger optional Apparently, despite the git-fast-import.txt documentation, tagger is optional for both fast-export and fast-import. I suspect this is because there are several (old) tags in the linux.git repository that have no tagger, so if we want to test rewriting linux.git history then we need to make it optional for filter-repo too. Signed-off-by: Elijah Newren --- git-filter-repo | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/git-filter-repo b/git-filter-repo index 5579ec3..da4f6b0 100755 --- a/git-filter-repo +++ b/git-filter-repo @@ -687,9 +687,10 @@ class Tag(_GitElement): file_.write('tag %s\n' % self.ref) mark = ':' if isinstance(self.from_ref, int) else '' file_.write('from {}{}\n'.format(mark, self.from_ref)) - file_.write('tagger %s <%s> ' % (self.tagger_name, self.tagger_email)) - _write_date(file_, self.tagger_date) - file_.write('\n') + if self.tagger_name: + file_.write('tagger %s <%s> ' % (self.tagger_name, self.tagger_email)) + _write_date(file_, self.tagger_date) + file_.write('\n') file_.write('data %d\n%s' % (len(self.tag_message), self.tag_message)) file_.write('\n') @@ -1382,7 +1383,9 @@ class FastExportFilter(object): if self._currentline.startswith('original-oid'): original_id = self._parse_original_id(); - (tagger_name, tagger_email, tagger_date) = self._parse_user('tagger') + tagger_name, tagger_email, tagger_date = None, None, None + if self._currentline.startswith('tagger'): + (tagger_name, tagger_email, tagger_date) = self._parse_user('tagger') tag_msg = self._parse_data() if self._currentline == '\n': self._advance_currentline()