10

以前也有人问过类似的问题(比如这个),但答案并没有为我解决。我的作者文件如下所示:

cmannett85 = cmannett85 <cmannett85@###>
cbamber85 = cmannett85 <cmannett85@###>
www-data = cmannett85 <cmannett85@###>

我得到的错误是;

Author: cmannett85 not defined in users.txt file

此错误发生在大约第 1500 次提交时,其他作者条目都很好,因此条目的基本结构必须正确。我已经在 SO 上看到的大多数问题都围绕着 SVN 用户名,它们前面/附加了一个空格,但正如您从粘贴的错误中看到的那样 - 没有多余的空格。

我还认为可能是我将一个用户名映射为一个相同的用户名,所以我更改了 Git 用户名,但没有任何区别。我什至尝试在 Windows 和 Unix 格式之间切换行结束,但同样没有变化。

我使用这个调用操作:

$ git svn clone https://subversion.assembla.com/svn/#### --authors-file=users.txt --no-metadata -s ####

我尝试删除--no-metadataarg,但没有区别。谁能看到我哪里出错了?

更新

按照懒獾的建议,我跑了:

$ svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /'

它返回这个:

<author>cbamber85</author>
<author>cmannett85</author>
<author>www-data</author>
4

4 回答 4

5

刚刚偶然发现这个问题并最终通过从以 UTF-8 文件编码的 authors.txt 文件中剥离字节顺序标记来解决该问题,从而使 Linux 将其视为纯文本 ASCII 文件而不是 UTF-8。

由于我的文件在 Windows 上作为 Powershell 输出开始生活,因此更普遍的正确答案是简单文本绝不是简单文本,这使得 Lazy Badger 的答案是最好的,因为它避免了掩盖这些差异的头痛。

于 2014-12-23T13:40:13.290 回答
3

我想我找到了问题和解决方案:

我的 author.txt在将其转换为ANSI后被编码为UCS2 Little Endian,文件大小下降到 50% 并且可以正常工作。

文件大小从 70KB 下降到 35KB,但我不认为这是解决方案。

我的 author.txt 是使用 Windows Active Directory 中的 powershell 脚本创建的。

我还将行尾从CR LF更改为LF,但您提到,您也已经尝试过。所以我认为这是一个字符编码问题。

于 2013-06-24T16:12:22.910 回答
2

我刚刚遇到了与此处描述的相同的问题,结果证明是通过在 notepad++ 中创建一个新的 .txt 文件(原始作者文件是由我在其他地方找到的 powershell 命令生成的),然后复制原始文件的内容进入新的 .txt 文件,然后获取工作。

原来原始文件被编码为 UCS-2 Little Endian(如上),但 UTF-8 的默认编码有效。我不需要更改行尾。

于 2014-10-15T15:23:07.740 回答
2

我敢肯定 -在克隆之前从纯 SVN 数据准备用户列表将是更防弹的方式

即类似的东西:

svn log --xml URL | grep "author" | sort -u | ...strip xml-tags here...
于 2012-10-31T11:25:00.243 回答