40

SVNリポジトリをGitにインポートしようとしています。次のいずれかのコマンドを実行すると、次のようになります。

git svn --authors-file=/path/to/authors --trunk=trunk clone https://my-repo/project .

またはこのコマンド:

svn2git https://my-repo/project --no-minimize-url -v --authors /path/to/authors

どちらもこのエラーを返します:

Author: patrick  not defined in /path/to/authors file

..しかし、私が知る限り、私の作者ファイルには何の問題もありません。

$ grep patrick /path/to/authors
patrick = Patrick <none@example.com>

このエラーはリビジョン8700に到達するまで発生しないため、他の作成者名を正しく取得している必要があります。

ここで何が起こっているのでしょうか?ありがとう。

4

9 に答える 9

4

同じ問題がありました。authors.txt の形式は、次の形式に厳密です。

svn name = user name &#8249;email&#8250;

次のように:

cruise-control = Cruise Control &#8249;cruise-control@abc.com&#8250;
user1 = User1 Lastname1 &#8249;user1@abc.com&#8250;
user2 = User2 Lastname2 &#8249;user2@abc.com&#8250;

たとえば、次の形式は機能しません。

user1 = user1@abc.com
于 2016-04-24T00:34:53.093 に答える
2

次の 2 つの問題がありました。

最初の問題は、各著者に固有の電子メール アドレスを割り当てることで解決しました。

また、ユーザー名は「patrick」でした。どうしてこうなったのかはわかりませんが、svnadmin を使用することで、そのニックネームのすべてのインスタンスを単に "patrick" に変更することができました。

于 2012-06-14T20:04:56.367 に答える
2

同じエラーが表示されましたが、理由は異なります。この質問を見つけた他の人への回答になる可能性があるため、ここに私の解決策を「回答」として投稿します(OPの問題/質問に対する解決策/回答ではない場合でも):

svn logプロジェクトのチェックアウトから実行していました。しかし、私はtrunkチェックアウトしただけなので、trunk に変更をコミットした作成者だけが含まれていました。これは明らかにほとんどの作成者であったため、クローンは長時間 (90 分以上) 実行された後、エラーでクラッシュしました。

svn logプロジェクトのルート全体をチェックアウトすることは実行可能なオプションではなかったため (500 を超えるブランチとタグがあり、ダンプは 600 GB を超えています)、次のようにリモート リポジトリで実行できることがわかりました。

svn log -q svn://server/path-to-project-root

実際のコマンドは、出力のフィルタリングとフォーマットも行いました。

svn log -q svn://server-url/path-to-project-root | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt
于 2017-07-31T11:00:36.827 に答える
1

質問と同じエラーが発生しました。私の解決策は、メモ帳に表示されない余分な改行文字または改行文字でした。メモ帳で問題なく表示されるエントリjohn = John <email@example.com>がありました。Notepad ++で開いたとき、次のようにフォーマットされていることに気付きました:

john =
John <email@example.com>

これをメモ帳++で1行に修正した後、うまくいくように見えました。

于 2018-05-21T12:56:51.283 に答える