Эта функция сегодня не существует, как вы узнали. Написание этого будет забавным небольшим упражнением :-) Вы должны начать с источника для приемника hg
и изменить функцию _rewritetags
. Он анализирует data
(содержимое файла .hgtags
для набора изменений, который в настоящее время преобразуется) и перезаписывает хэши наборов изменений в соответствии с новыми хэшами.
Это ваша возможность переписать или исключить теги! Я изменил файл так, чтобы исключить теги ниже версии 2.0 и слегка переписать их:
def _rewritetags(self, source, revmap, data):
def keep(tag):
try:
version = map(int, tag.split('.'))
return version >= [2, 0]
except ValueError:
return False
def rename(tag):
return tag + "-partial"
fp = cStringIO.StringIO()
for line in data.splitlines():
s = line.split(' ', 1)
if len(s) != 2:
continue
if not keep(s[1]):
continue
revid = revmap.get(source.lookuprev(s[0]))
if not revid:
continue
fp.write('%s %s\n' % (revid, rename(s[1])))
return fp.getvalue()
Для тестирования я также безоговорочно меняю self.filemapmode
на True
. В противном случае convert
не обнаружит и не отфильтрует пустые коммиты. Поскольку вы уже используете карту файлов, с вами все будет в порядке.
Наконец, удалите дополнительный набор изменений "теги обновления", добавленный convert, и вы снова получите хорошую историю.