hg convert --authors wrongUsers <-- 文件格式是什么?
相关内容可以查看 这里。具体的操作步骤可以参考 这里,里面有示例:
john=John Smith <John.Smith@someplace.net>
tom=Tom Johnson <Tom.Johnson@bigcity.com>
但这到底是什么意思呢?假设我想把 "hh <right@gmail.com>"
替换成 "hhh <right@gmail.com>"
,那这一行应该写成什么样子呢?“用户名”、“映射”和“文件名”这些词是什么意思呢?我在 "convert/__init__.py"
里找到了这一部分 "username mapping filename"
:
cmdtable = {
"convert":
(convert,
[('A', 'authors', '', _('username mapping filename')),
('d', 'dest-type', '', _('destination repository type')),
('', 'filemap', '', _('remap file names using contents of file')),
('r', 'rev', '', _('import up to target revision REV')),
这段代码创建了一个对象,把作者的信息存储为字典,具体在 convcmd.py 的第79行:
class converter(object):
def __init__(self, ui, source, dest, revmapfile, opts):
self.source = source
self.dest = dest
self.ui = ui
self.opts = opts
self.commitcache = {}
self.authors = {}
self.authorfile = None
它会用 "="
来分割作者文件中的每一行,但从这里开始我就搞不懂它是怎么工作的。那么,修正错误作者的 authors.file 应该是什么样子的呢?如果可以的话,请告诉我具体的代码行,因为我觉得文档很难懂。
[更新]
我尝试了各种文件选项,但 "$ hg status"
和 "$ hg log --template '{author}\n'"
的结果都没有变化。要么我在执行 "$ hg convert --authors conversionAuthors ."
这个命令后需要做一些奇怪的操作,要么我无法匹配到作者。我怎么才能知道 "完全匹配" 是什么?我怎么知道自己是否成功了呢?
1 个回答
7
这个转换扩展使用的是文字替换的方法。
做个简单的实验,如果你想把 hh <right@gmail.com>
替换成别的名字,你只需要创建一个作者映射文件,内容如下:
hh <right@gmail.com> = hhh <right@gmail.com>
左边的部分必须和你想替换的作者名字完全一致。如果不完全一致,就不会进行替换。