我正在尝试将我们的SVN仓库导入Git。当我运行以下命令之一时:
git svn --authors-file=/path/to/authors --trunk=trunk clone https://my-repo/project .
或以下命令:
svn2git https://my-repo/project --no-minimize-url -v --authors /path/to/authors
两者都返回此错误:
Author: patrick not defined in /path/to/authors file
..但据我所知,我的作者文件没有任何问题:
$ grep patrick /path/to/authors
patrick = Patrick <none@example.com>
在到达修订版8700之前不会发生该错误,因此它必须正确地获取其他作者的姓名。
这到底是怎么回事?谢谢。
9条答案
按热度按时间332nm8kg1#
我在Windows上尝试执行时也遇到了同样的问题。结果是我存储作者的文件的编码被设置为UTF-8,而不是不带BOM的UTF-8。由于“带BOM”版本在文件的开头添加了一些额外的字节,列表中的第一个作者从未被找到。
46qrfjad2#
我也遇到了同样的问题,但原因实际上是相当不同的:我使用Powershell从SVN转储作者列表,我没有意识到它将结果保存为UTF-16文件。
结果发现git(至少在windows 2.16.1版之前)无法使用UTF-16文件,而将文件转换为UTF-8就帮了我大忙。
shyt4zoc3#
我 也 有 同样 的 问题 。 authors.txt 的 格式 对 表单 要求 严格
中 的 每 一 个
例如 :
格式
例如 , 此 格式 不 起 作用 :
格式
7xzttuei4#
我看到了同样的错误,但原因不同。我将把我的解决方案作为“答案”贴在这里,因为它可能是找到这个问题的其他人的答案(即使它不是OP的问题/问题的解决方案/答案):
我在项目 checkout 时运行了
svn log
。但是我只 checkout 了trunk
,所以只有那些提交了对trunk的修改的作者才被包括在内。这显然是大多数作者,所以克隆将运行很长时间(超过90分钟),然后它会因为错误而崩溃。由于 checkout 整个项目根目录不是一个可行的选项(它有超过500个分支和标记,转储超过600 GB),我发现我可以在远程repo上运行
svn log
,如下所示:实际的命令还对输出进行了一些过滤和格式化:
ippsafx75#
有 两 个 问题 :
我 通过 给 每个 作者 分配 唯一 的 电子 邮件 地址 解决 了 第 一 个 问题 。
还有 , 用户 名 是 " patrick " 。 我 不 知道 这 是 怎么 发生 的 , 但 通过 使用 svnadmin , 我 能够 将 该 昵称 的 所有 示例 都 改 为 " patrick " 。
pnwntuvh6#
在作者姓名的开头查找空格并删除空格。如果这样做没有帮助,请尝试将作者姓名移到文件的顶部。
ssm49v7z7#
我遇到了与问题相同的错误,我的解决方案是额外的换行符或回车符,这些字符在记事本中没有显示。我有一个条目
john = John <email@example.com>
,它在记事本中显示得很好。尽管在记事本++中打开时,我注意到它的格式如下:当我在Notepad++中将其固定为单行后,它似乎对我来说工作得很好。
vfh0ocws8#
我在文件中有2个用户,一个接一个,编码默认设置为Ucs-2 LE BOM。将编码更改为UTF-8对我很有效。
jtoj6r0c9#
小心你的尾行。我的文件是UTF-8格式的,但是尾行是“Mac风格”的,虽然我在Windows上。
现在,具有正确的结束行(cr + lf)的文件被接受