2

サブバージョンの問題は、ユーザー名だけでコミットを識別することです。たとえば、Git ではフルネームと電子メール アドレスをメタ情報としてコミットに追加できます。一部の組織では、個人にマップするのが難しいユーザー アカウントが必要です。これらの組織の中には、svn を使用する必要があるものもあります。この状況をコード レビュー担当者が実行できるようにすると、次のような疑問が生じます。

  • コミットにいくつかのメタ情報を保持して、svn でマッピングを実行できるようにすることはできますか?

または、それが不可能な場合、

  • git-svn を使用してローカル システムでマッピングを行うにはどうすればよいですか?
4

2 に答える 2

1

git-svn を使用して「git ユーザー」から「subversion ユーザー」への複雑なマッピングを行う必要がある場合は、「git svn clone」に --authors-prog オプションを使用することをお勧めします。たとえば、subversion ユーザーを最初の引数として取る my-complex-mapping.sh を作成し、git に使用させたい "Git User " 名をエコーし​​ます。次に、「git svn clone --authors-prog=$HOME/my-complex-mapping.sh」を実行します。

于 2012-07-24T20:09:01.293 に答える
1

Subversion リビジョンのカスタム リビジョン プロパティを設定できます (詳細については、http://svnbook.red-bean.com/en/1.7/svn.advanced.props.htmlを参照してください)。

$ svn propset property_name property_value -r<REV> --revprop
property 'property_name' set on repository revision <REV>

これは、コミット後のフック スクリプトで呼び出すことができます (スクリプトはリビジョンの作成者を調べ、短い作成者名を検索して、マッピング ファイル (例: authors.txt --- 以下を参照) を使用して完全な作成者情報を解決できます)。

subgit や git-svn などの Git<->SVN 翻訳ソリューションでは、次の形式で authors.txt マッピングを使用することもできます。

shortname = Long Name <email@example.com>
anothername = Another Long Name <email2@example.com>
...

author.txt ファイルへのパスは、すべての git-svn コマンド (git-svn --authors-fileは SVN->Git 変換でのみ機能し、Git->SVN は常にそのユーザー名でリビジョンを作成します; subgit の場合、オプションは双方向で機能します)。

于 2012-07-10T10:39:02.540 に答える