はじめに
現在の職場では Subversion を使用しています。
Subversion では、コミットしたユーザ名に「ログイン ID 名」が使われます。しかしながらこれは、社員番号などであることもしばしばあります。
同じような悩みを持つ人はいるようで、以下のようなサイトが見つかりました。
Active Directoryと連携して、svn:authorに氏名を表示する(Windows) - I’m a Bomb!
これらはサーバ側で処理を行うソリューションのようです。
クライアント側で
クライアント側(ローカル側)で操作することはできないのでしょうか。
調べたところ、Git の git config user.name
のように手軽にはできないようです。コミットしたタイミングで動くフックスクリプトに「直前のコミットのプロパティを書き換える」という処理を書く必要があるようです。
要件が二つあります。
一つは書き換え許可です。この書き換えに対する許可自体はサーバ側のフックスクリプトで設定しておく必要があります。
もう一つは、Subversion クライアントが TortoiseSVN に限られるということです。
フックスクリプト例
以下のスクリプトを PostCommit.js
のような名前で任意の場所に保存します。
var shell = new ActiveXObject("WScript.Shell"); var cmd = "C:\\nProgram Files\\TortoiseSVN\\bin\\svn propset svn:author --revprop -r " + WScript.Arguments(3) + " " + "<あなたのお名前>"; shell.Exec(cmd); WScript.Quit(0);
フックスクリプトを設定する
ローカルの作業ディレクトリにて TortoiseSVN の「設定」を起動します。作業手順はこちらをご覧ください。
この設定で、先ほどのフックスクリプトを指定します。
設定は以上です。
終わりに
git config --global user.name
にあたる処理は、残念ながら見つけることはできませんでした。作業ディレクトリを細かく分けている人は、ちょっと設定が煩わしいかもしれません。
参考
TortoiseSVN でクライアントフックスクリプトを設定する
名前を書き換える svn コマンド。
svn propset svn:author --revprop -r リビジョン 名前