2012-10-31 15 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 

このエラーは、およそ第千五百で起こるコミット、他の作者のエントリは細かいことでそのエントリの基本的な構造が正しくなければなりません。私がすでに見てきた問題のほとんどは、SVNユーザー名の前後にスペースがあらかじめ付加されていますが、ペーストされたエラーからわかるように、余分な空白はありません。

私は同じユーザのために1つのユーザ名をマッピングしていたかもしれないと思っていたので、私はGitのユーザ名を変更しましたが、違いはありませんでした。私はWindowsとUnixフォーマットの間でラインの終わりを切ってみましたが、やはり変更はありません。

私はこれを使用してオペレーションを呼び出す:

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

Iは--no-metadata引数、ない差を除去することを試みました。誰が私が間違っているのを見ることができますか?

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

をそして、それはこの返します:レイジーアナグマのアドバイスに従い

UPDATE

は、私が走った

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

私はまったく同じ問題に取り組んでいます。新しいアイデアは? (windows maschine上で動いている、gitバージョン1.8.3.msysgit.0) –

答えて

2

私は確信している - 純粋SVNから準備ユーザーリスト-data クローン前は、より耐性のある方法になります

すなわちような何か:

私author.txtがANSI にファイルサイズを、それを変換した後UCS2リトルエンディアンとしてエンコードされた

:私は、問題と解決策を見つけたと思う

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

おかげで、私は怒っていないと私は安心しましたが、問題を明らかにしていません。私の更新を見てください。 – cmannett85

+1

@ cmannett85 - 考え方から...どのリビジョンに問題があるのか​​を検出できれば、私はそれを推薦するつもりです。 hgの場合、私は部分的なクローンを使用し、小さなシリーズでは-rを使用します(git svnの可能性については何も知らない) –

2

50%に低下し、それは働いた。

ファイルサイズが70KBから35KBに減少しましたが、これは解決策ではないと思います。

私のauthor.txtは、Windows Active Directoryのpowershellスクリプトで作成されました。

私もCR LFから LF にラインエンドを変更しましたが、あなたはすでにあまりにも、これを試してみましたことを、述べました。だから私はcharackterエンコーディングの問題だと思う。

+0

エンコーディングと行末の変更は私には違いがなかった:( – Toby

2

ここで説明したのと同じ問題が発生しましたが、notepad ++で新しい.txtファイルを作成すると(元のauthorsファイルは別の場所にあるpowershellコマンドで生成されました)元のファイルを新しい.txtファイルにコピーすると、フェッチが実行されました。

元のファイルはUCS-2リトルエンディアン(上記と同じ)としてエンコードされていますが、UTF-8のデフォルトエンコードが機能しています。私は行末を変更する必要はありませんでした。

4

UTF-8ファイルでエンコードされたauthors.txtファイルからバイトオーダーマークを取り除いてLinuxをUTF-8ではなくプレーンテキストのASCIIファイルとして表示することで、この問題を解決しました。 。

Powershellの出力として私のファイルがWindowsで起動して以来、より一般的な正解は単純なテキストではなく、Lazy Badgerの答えが最も良いということです。

+0

これはあなたの投稿にコメントを残すことができます。また、十分な[評判](http://stackoverflow.com/help/whats-reputation)があれば、あなたの投稿にコメントを残すことができます。 – AdamMc331

+0

誰もが元のファイルを簡単に再生成できるわけではないので、私は答えを提出しました。 – user4388759

+0

私はどこから来ているのか分かりますが、レビューキューでこれを見たとき(他の誰かがそれを示していました)、私はレイジーバジャーの答えが何であるかを知るのに役立ちます。彼らがやったと思うあなたの答えは解説と見なすこともできるので、あなたが提案して別の答えを勧めることさえできます。それが私だったら(私が担当者にコメントをしていたと仮定して)、別の答えや、あなたのために働いたことについての質問にもコメントしただけです。 – AdamMc331

関連する問題