我正在尝试将我们的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之前不会发生,所以它必须正确地抓取其他作者名称。
这可能会发生什么?感谢。
答案 0 :(得分:20)
尝试在Windows上执行此操作时,我遇到了同样的问题。事实证明,我存储作者的文件的编码设置为UTF-8而不是没有BOM的UTF-8。作为&#34;与BOM&#34; version在文件的开头添加了一些额外的字节,从未找到列表中的第一个作者。
答案 1 :(得分:3)
我有同样的问题。 authors.txt的格式严格,格式为
svn name = user name ‹email›
如:
cruise-control = Cruise Control ‹cruise-control@abc.com›
user1 = User1 Lastname1 ‹user1@abc.com›
user2 = User2 Lastname2 ‹user2@abc.com›
例如,这种格式不起作用:
user1 = user1@abc.com
答案 2 :(得分:2)
有两个问题:
我通过为每位作者分配唯一的电子邮件地址解决了第一个问题。
此外,用户名是“patrick”。我不知道是怎么发生的,但是通过使用svnadmin,我能够将该昵称的所有实例更改为“patrick”。
答案 3 :(得分:1)
我遇到与问题相同的错误,因为我的解决方案是额外的换行符或回车符未显示在记事本中。我的条目john = John <email@example.com>
在记事本中表现得很好。虽然在Notepad ++中打开时我注意到它的格式如下:
john =
John <email@example.com>
我在Notepad ++中将其修改为单行后,它似乎对我来说很好。
答案 4 :(得分:1)
我在文件中有2个用户,一个又一个,并且编码默认设置为Ucs-2 LE BOM。将编码更改为UTF-8对我有用。
答案 5 :(得分:0)
我看到同样的错误,但原因不同。我会在此处发布我的解决方案作为回答&#34;,因为它可能是其他发现此问题的人的答案(即使它不是OP&#39的解决方案/答案) ; s问题/问题):
我在项目结帐时运行svn log
。但是我只检查过trunk
,所以只包括已经提交更改为trunk的作者。这显然是大多数作者,因此克隆会在错误崩溃之前运行很长时间(超过90分钟)。
检查整个项目的根目录是不可行的选项(它有超过500个分支和标签,转储超过600 GB),我发现我可以运行svn log
在这样的远程回购:
svn log -q svn://server/path-to-project-root
实际命令也对输出进行了一些过滤和格式化:
svn log -q svn://server-url/path-to-project-root | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt
答案 6 :(得分:0)
在作者姓名的开头查找任何空格并删除空格。如果这没有用,请尝试将作者姓名移到文件顶部。
答案 7 :(得分:0)
注意你的尾线。 我的文件是 UTF-8,但虽然我在 Windows 上,但结尾是“mac 风格”。
现在,有了好的结尾(cr + lf),文件被接受了