之前已经提出了类似的问题(比如this),但答案并没有为我解决。我的作者文件看起来像这样:
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-metadata
arg,但没有区别。谁能看到我出错的地方?
更新
按照Lazy Badger的建议,我跑了:
$ svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /'
然后它返回:
<author>cbamber85</author>
<author>cmannett85</author>
<author>www-data</author>
答案 0 :(得分:4)
偶然发现了这个问题并最终通过从UTF-8文件中编码的authors.txt文件中删除字节顺序标记来解决问题,从而使Linux将其视为纯文本ASCII文件而不是UTF-8。
由于我的文件在Windows上作为Powershell输出开始生活,更普遍的正确答案是简单的文本绝不是简单的文本,这使得Lazy Badger的答案最好,因为它避免了对这些差异进行论文的头痛。
答案 1 :(得分:2)
我确定 - 从纯SVN数据中准备用户列表克隆之前会更加防弹
我喜欢的东西:
svn log --xml URL | grep "author" | sort -u | ...strip xml-tags here...
答案 2 :(得分:2)
我想我发现了问题和解决方案:
我将author.txt编码为 UCS2 Little Endian ,将其转换为 ANSI 后,文件大小降至50%并且有效。
文件大小从70KB下降到35KB,但我不认为这是解决方案。
我的author.txt是使用Windows Active Directory中的powershell脚本创建的。
我还将 CR LF 的行尾改为 LF ,但你提到了,你我也试过这个。所以我认为这是一个charackter编码问题。
答案 3 :(得分:2)
我刚刚遇到了与此处所述相同的问题,结果发现只需在notepad ++中创建一个新的.txt文件(原作者文件是由我在别处找到的powershell命令生成的)然后复制将原始文件的内容放入新的.txt文件中,然后fetch工作。
原来的文件编码为UCS-2 Little Endian(如上所述),但UTF-8的默认编码有效。我没有必要改变行结尾。