40

我正在尝试将我们的 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 之前不会发生,因此它必须正确获取其他作者姓名。

这里会发生什么?谢谢。

4

9 回答 9

40

尝试在 Windows 上执行此操作时,我遇到了同样的问题。事实证明,我存储作者的文件的编码设置为 UTF-8,而不是没有 BOM 的 UTF-8。由于“带 BOM”版本在文件开头添加了一些额外的字节,因此从未找到列表中的第一作者。

于 2015-02-03T16:03:24.563 回答
12

我遇到了同样的问题,但原因实际上完全不同:我使用 Powershell 从 SVN 转储作者列表,但我没有意识到它将结果保存为 UTF-16 文件。

事实证明 git(至少,Windows 版本 2.16.1 的 git)无法使用 UTF-16 文件。将文件转换为 UTF-8 对我有用。

于 2018-02-27T08:53:47.817 回答
4

我遇到过同样的问题。authors.txt 的格式是严格的形式

svn name = user name &#8249;email&#8250;

如:

cruise-control = Cruise Control &#8249;cruise-control@abc.com&#8250;
user1 = User1 Lastname1 &#8249;user1@abc.com&#8250;
user2 = User2 Lastname2 &#8249;user2@abc.com&#8250;

例如,这种格式不起作用:

user1 = user1@abc.com
于 2016-04-24T00:34:53.093 回答
2

有两个问题:

我通过为每个作者分配唯一的电子邮件地址来解决第一个问题。

此外,用户名是“patrick”。我不知道这是怎么发生的,但是通过使用 svnadmin 我能够将该昵称的所有实例更改为“patrick”。

于 2012-06-14T20:04:56.367 回答
2

我看到了同样的错误,但出于不同的原因。我将在这里发布我的解决方案作为“答案”,因为它可能是找到此问题的其他人的答案(即使它不是 OP 问题/问题的解决方案/答案):

我正在svn log从项目的结帐中运行。但我只是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
于 2017-07-31T11:00:36.827 回答
1

查找作者姓名开头的任何空格并删除空格。如果这样做没有帮助,请尝试将作者姓名移到文件顶部。

于 2017-09-12T21:09:20.370 回答
1

我遇到了与问题相同的错误,我的解决方案是额外的换行符或回车符没有出现在记事本中。我的条目john = John <email@example.com>在记事本中显示得很好。虽然在记事本++中打开时,我注意到它的格式如下:

john =
John <email@example.com>

在我在 Notepad++ 中将其修复为单行之后,它似乎对我来说工作得很好。

于 2018-05-21T12:56:51.283 回答
1

我在文件中一个接一个地有 2 个用户,默认情况下编码设置为 Ucs-2 LE BOM。将编码更改为 UTF-8 对我有用。

于 2020-03-24T18:55:17.163 回答
0

当心你的底线。我的文件是 UTF-8 格式,但结尾是“mac 风格”,虽然我在 Windows 上。

现在,通过良好的端线(cr + lf),文件被接受

于 2021-03-11T11:03:11.333 回答