2

私の会社の特定のワークフローの問題について、メインのリポジトリが git の下にある間に、一部のユーザーが CVS を使用できるようにする必要があります。

このタスクの実装として git-cvsserver を選択しました。

git リポジトリをセットアップし、gitcvs で有効にして、xinetd で pserver シミュレーションをセットアップしました。すべて正常に動作し、pserver エミュレーションで作成した passwd ファイルに対して認証を行い、cvs クライアントからこのリポジトリを操作できます。

私の問題は、CVS を介して作成したコミットが、passwd に対して認証したユーザーの下ではなく、xinetd を実行するユーザーの下に表示されることです。

つまり、ユーザー 'foo' として CVS にコミットし、pserver を介して認証に成功しましたが、このリポジトリのコミットの git 履歴を見ると、コミットがユーザー 'root' によって行われたことがわかります。

git-cvsserver のソース ( http://git.kernel.org/?p=git ​​/git.git;a=blob;f=git-cvsserver.perl ) を調べたところ、CVS ログインは認証であり、実際のコミット用ではありません。SQLite データベースのレコードには、「foo」ではなく「root」ユーザー名も含まれています

CVS ログインを git ユーザー名に伝達する方法を教えてください。

git メーリング リストの xref: http://thread.gmane.org/gmane.comp.version-control.git/169182

4

2 に答える 2

1

私はそれについて具体的な経験はありませんが、実際の作業を行うことgit-cvsserverはほぼ確実です。と(およびとも) などの環境変数を設定することで、作成者とコミッターに必要なものを何でも使用git-commitできるようになります。利用可能な認証情報がある場合は、実際のコミットの前に設定するだけです。環境をクリーンアップしない場合は、実際に認証情報からそれらをラッパーに設定してから、それを呼び出すことができます (コミットの場合のみ)。git-commitGIT_COMMITTER_EMAILGIT_AUTHOR_EMAIL..._NAME..._DATE..._IDENT$ENVgit-cvsserver

于 2011-03-16T19:59:51.827 に答える