今天你还没有发现这个功能。编写它将是一个有趣的小练习:-)你应该从hg
接收器的源头开始,并更改_rewritetags
function。它解析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中添加的额外“更新标签”变更集,您将再次获得一个不错的历史记录。
我不确定订单是如何保存的,但是您可以指定您想要记录标签的日期,因为当您使用-d或--date创建标签时?它并不能完全解决它所进行的修改,但它确实可以让你将日期设置为你想要的。 –
@TrentonSchulz:谢谢。我知道'--date',并在之前使用它。这实际上是我的备份计划。 –
你能结合一个按日期排序的转换,而不是按分支吗? –