4

そのため、以前はコミッター名がきちんと表示され、誰が何をしたかを簡単に追跡できるこの SVN リポジトリがあります。最近、svn リポジトリが別のサーバーに移動され、ログを確認すると作成者のユーザー ID のみが表示されるように設定されました。サーバー内のSVN authzまたはその他の設定ファイルを更新して、作成者名を追加できると思います。

私が聞きたかったのは、クライアント側でそれを行う方法はありますか? 主な理由は、SVN サーバーの設定を変更するためのアクセス権または権限がないためです。小道具や、マッピングを取得できる何かを取得する方法はありますか?ログに表示される可能性があります。

SVN クライアントとして tortoiseSVN を使用しています。

4

2 に答える 2

1

これらの Subversion ユーザー ID はどこから来たのですか? Subversion は Windows Active Directory のように LDAP と統合されていますか、それとも別の Subversion 認証ファイルですか?

ユーザー ID は古いサーバー (人々が自分の名前を使用していた場所) から現在のユーザー ID に変更されましたか?

次の 2 つのことが考えられます。

  • LDAP 経由で Wi​​ndows AD を使用し、古いサーバーはユーザーのcn属性に対して検証され、新しいサーバーは に対して検証されましたsAMAccountName

  • 古いサーバーには、svn:authorリビジョン プロパティをユーザーのログイン ID からユーザーの名前に変更するポストコミット フックがありました。

古い Subversion サーバーをまだ持っていますか? セットアップの違いを見つけることができるかどうかを確認する必要があります。


追加コメント

ありがとうデビッド。アクセス制限があるので、できるかどうかわかりませんが、確認します。「X123」を「John Doe」に設定するなど、クライアント側のプロップ値を設定できるかどうか知っていますか。ログを表示すると、X123 を持つすべてのコミッターの名前が John Doe として表示されますか?

svn:authorリビジョン プロパティには、コミットを行ったユーザーの名前が含まれています。これは好きなように変更できます。前に言ったように、コミット後のフックを使ってこれを行うサイトを見てきました。私はこれを行うのが好きではありません。ただし、一部のサイトでは、ユーザー名にランダムな文字列を選択しているようです。X123あなたの例で言ったように。運命と変化を誘惑したいという誘惑svn:authorは非常に強いものです。

私ができるいくつかの推奨事項があります:

  • Jenkinsのようなものを使用できます。Jenkins は継続的なビルド エンジンです。ただし、使いやすいインターフェイスに完全な履歴も保存されます。できることの 1 つは、LDAP または Windows AD を使用している場合に、ユーザー ID を実際の名前に変換することです。したがって、Jenkins で履歴を見ると、実際のユーザー名が表示されます。

  • 別のリビジョン プロパティを使用できます。たとえば、local:username. これもポストコミットフックによって行われます。ただし、svn:authorリビジョン プロパティは変更されないため、副作用の可能性はありません。コマンドを使用してユーザーの名前を確認する必要がある場合は、簡単に検索できますsvn pg --rev-prop -r $rev。または、パラメータと パラメータsvn logのいずれかを使用すると、 で表示できます (申し訳ありませんが、XML 形式の場合にのみログに表示されます)。--with-rev-prop local:username--with-all-revprops--xml

ところで、post-commit フックを使用してリビジョン プロパティを変更svn:authorまたは追加するlocal:username場合は、pre-revprop-change を追加して、リビジョン プロパティを変更/追加する権限を与える必要があります。これは、他のすべてのフックの反対です。これらのフックでは、アクションを防止するためにゼロ以外の終了値を生成する必要がありました。この例では、アクションを許可するためにゼロの終了値を生成します。このフックがないと、リビジョン プロパティを変更できません。

于 2013-05-06T19:40:13.433 に答える
1

ログに表示されるユーザー ID は、リビジョンがコミットされたときにサーバーへの認証に使用される ID です。クライアントによって報告されている内容をクライアント内で直接変更する方法はありません。事後にログを抽出して ID を再マッピングすることしかできず、ログをプルするたびにこれを行う必要があります。

于 2013-05-06T19:27:00.513 に答える