SVN to Git migration - undefined author,但确实如此

cma*_*t85 7 svn git git-svn

之前已经提出过类似的问题(就像这个问题一样),但答案并没有为我解决.我的作者文件看起来像这样:

cmannett85 = cmannett85 <cmannett85@###>
cbamber85 = cmannett85 <cmannett85@###>
www-data = cmannett85 <cmannett85@###>
Run Code Online (Sandbox Code Playgroud)

而我得到的错误是;

Author: cmannett85 not defined in users.txt file
Run Code Online (Sandbox Code Playgroud)

此错误发生在大约第1500次提交时,其他作者条目正常,因此条目的基本结构必须正确.我已经在SO上看到的大多数问题围绕着SVN用户名有一个空格预先/附加到它们,但是从粘贴的错误中可以看出 - 没有多余的空白区域.

我也认为可能是因为我为同一个用户名映射了一个用户名,所以我更改了Git用户名,但没有区别.我甚至尝试在Windows和Unix格式之间切换行结束,但再次没有变化.

我使用这个调用操作:

$ git svn clone https://subversion.assembla.com/svn/#### --authors-file=users.txt --no-metadata -s ####
Run Code Online (Sandbox Code Playgroud)

我尝试删除--no-metadataarg,但没有区别.任何人都可以看到我哪里出错了?

UPDATE

按照Lazy Badger的建议,我跑了:

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

它返回:

<author>cbamber85</author>
<author>cmannett85</author>
<author>www-data</author>
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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


Laz*_*ger 2

我确信 -在克隆之前从纯 SVN 数据准备用户列表将是更安全的方式

即类似:

svn log --xml URL | grep "author" | sort -u | ...strip xml-tags here...
Run Code Online (Sandbox Code Playgroud)