hg convert --authors wrongUsers < - 文件的格式是什么?

hhh*_*hhh 5 python mercurial

相关这里.说明这里指导与例如:

john=John Smith <John.Smith@someplace.net>
tom=Tom Johnson <Tom.Johnson@bigcity.com>
Run Code Online (Sandbox Code Playgroud)

但是这是什么意思?假设我想替换"hh <right@gmail.com>""hhh <right@gmail.com>",就这条线是什么样子?用户名,映射和文件名是什么意思?我能找到这部分"username mapping filename"来自"convert/__init__.py":

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')),
Run Code Online (Sandbox Code Playgroud)

它将作者存储为dict,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
Run Code Online (Sandbox Code Playgroud)

它会分割authorfile中的每一行,"="但从此开始,我失去了它是如何工作的.那么作者修复错误作者的文件是什么意思?如果可以,请指向我的源代码行,因为我发现文档非常难以理解.

[更新]

我已经尝试了该文件的所有选项,但"$ hg status"/ "$ hg log --template '{author}\n'"不会更改.要么我需要在命令之后做一些奇怪的事情,要么我"$ hg convert --authors conversionAuthors ."无法匹配作者.我怎么知道"完全匹配"?我怎么知道我是否成功了?

Tim*_*gan 6

convert扩展使用文字文本替换.

快速实验显示,如果要替换hh <right@gmail.com>,只需创建包含以下内容的作者地图文件:

hh <right@gmail.com> = hhh <right@gmail.com>

左侧必须您要替换的作者完全匹配.如果它不是完全匹配,则不执行替换.

  • 蒂姆现在在这里.将'convert'想象为'translate'.它基于第一个创建了一个完全不同的新存储库.然后你开始使用新的而不是旧的,任何拥有旧的人都需要开始使用新的.您可以将旧名称移动到新名称并将新名称移动到旧名称,但是您仍然更改了所有节点哈希值,因此它们没有有意义的可合并也不可互换. (2认同)