2012-10-31 53 views
7

類似的問題已被問到之前(如this之一),但答案並沒有解決它。我的作者文件是這樣的:SVN Git遷移 - 未定義的作者,但它是

cmannett85 = cmannett85 <[email protected]###> 
cbamber85 = cmannett85 <[email protected]###> 
www-data = cmannett85 <[email protected]###> 

而我得到的錯誤是;

Author: cmannett85 not defined in users.txt file 

這個錯誤發生在大約第1500次提交,與其他作者的條目被罰款,因此條目的基本結構必須是正確的。我已經看到的大多數問題都圍繞着SVN用戶名,它們有一個空格前綴/後綴,但從粘貼的錯誤中可以看出 - 沒有多餘的空白。

我也認爲這可能是我爲同一個用戶映射了一個用戶名,所以我更改了Git用戶名,但沒有任何區別。我甚至嘗試在Windows和Unix格式之間切換結束,但再次沒有改變。

我調用使用該操作:

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

我試圖消除--no-metadata ARG,但沒有什麼區別。任何人都可以看到我出錯的地方嗎?

UPDATE

繼懶獾的建議,我跑:

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

,並返回此:

<author>cbamber85</author> 
<author>cmannett85</author> 
<author>www-data</author> 
+0

我遇到了完全相同的問題。任何新的想法? (運行在windows maschine上,git版本爲1.8.3.msysgit.0) –

回答

2

我敢肯定 - 準備從單純的SVN用戶列表-data 克隆前將更加防彈的方式

即是這樣的:

svn log --xml URL | grep "author" | sort -u | ...strip xml-tags here... 
+0

謝謝,它讓我放心,我沒有生氣,但沒有透露這個問題。請參閱我的更新。 – cmannett85

+1

@ cmannett85 - 出於想法......如果您能檢測到,哪個版本(確切地說)是有問題的,我會建議將其加速。在hg的情況下,我會使用部分克隆和小系列拉-r(對git svn的可能性一無所知) –

2

我想我找到了問題和解決方案:

我author.txt被編碼爲UCS2小端將其轉換爲ANSI文件大小後下降到50%,它的工作。

文件大小從70KB下降到35KB,但我不認爲這是解決方案。

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

我也改了線路兩端從CR LFLF,但你所提到的,你已經嘗試過這個。所以我認爲這是一個charackter編碼問題。

+0

更改編碼和行結束對我來說沒有什麼不同:( – Toby

2

我剛剛遇到了與此處所述相同的問題,結果發現只需在記事本++中創建一個新的.txt文件(原始作者文件是由我在別處找到的powershell命令生成的),然後複製內容將原始文件轉換爲新的.txt文件,然後提取工作。

原來的文件被編碼爲UCS-2 Little Endian(如上所述),但默認的UTF-8編碼工作。我不需要改變行結尾。

4

剛剛偶然發現了這個問題,最終通過從UTF-8文件中編碼的authors.txt文件中剝離字節順序標記來解決問題,從而使Linux將其視爲純文本ASCII文件而不是UTF-8 。

由於我的文件在Windows上作爲Powershell輸出開始生活,更普遍的正確答案是簡單的文本從來不是簡單的文本,這使Lazy Badger的答案最好,因爲它避免了關於這些差異的紙張頭痛。

+0

這不提供答案問題:要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation)你將能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment) – AdamMc331

+0

我會問這個 - 我提交了我的答案,因爲不是每個人都可以輕鬆地重新生成原始文件,它我知道你來自哪裏,但是當我在評論隊列中看到這個(別人標記了它)時,我可能會知道爲什麼Lazy Badger的答案有效,但是這不足以作爲單獨答案的足夠內容嗎? – user4388759

+0

認爲他們做到了因爲你的答案也可以被視爲評論,因爲你甚至建議並建議一個不同的答案。如果是我,(假設我有代表評論),我只會評論其他答案,甚至是關於你做了什麼的問題。 – AdamMc331