情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

Subversionのpre-revprop-changeフックに関するエラー このエントリーを含むはてなブックマーク

エラー

エラーの内容は、こちら。

SVN: 'Set revision author' operation finished with error: svn: リポジトリが、リビジョン属性を変更できるようにはなっていません。
管理者に pre-revprop-change フックを作成するよう頼んでください
svn: リポジトリが、リビジョン属性を変更できるようにはなっていません。
管理者に pre-revprop-change フックを作成するよう頼んでください

このエラーは、Eclipse用プラグインSubversiveを利用してレポジトリへのコミットを行ったときに発生したものです。とりあえず、「pre-revprop-change」ファイルが無いことが問題なので、次のようにして作成しました。

pre-revprop-changeファイルを作成する

作成と言っても、デフォルトファイルpre-revprop-change.tmplhooksディレクトリにあるので、レポジトリのディレクトリに移動して、

cp hooks/pre-revprop-change.tmpl hooks/pre-revprop-change

のようにコピーするだけです。簡単ですね。

エラー再び

とりあえず、pre-revprop-changeファイルを作成することには成功しましたが、コミット時にまたもやエラーが。

SVN: 'Set revision author' operation finished with error: svn: 'pre-revprop-change' フックが次のようなエラーを出力して失敗しました:
Changing revision properties other than svn:log is prohibited

svn: 'pre-revprop-change' フックが次のようなエラーを出力して失敗しました:
Changing revision properties other than svn:log is prohibited

今度は、少しエラーの内容が異なります。ここで気がついたのですが、実はコミット時に、Subversionで簡単に使えるとある機能を使っていました。それが原因でした

その機能とは、コミットするユーザ名(Author)を変更(設定)する機能ですこれは、Subclipseでは(おそらく)できない機能ですやりかたは簡単で、レポジトリの設定(レポジトリプロパティ)の「Advanced>Override author name with represented below:」に、Authorとして登録したい名前を入力するだけです。たとえば、SVN+SSHを利用しているときは、SSHのログインユーザ名でコミットしてしまいますが、この設定を利用することで好きな名前に変更できます。

さて、これがどうエラーと関係しているかというと、エラー冒頭の「Set revision author」と関係しています。つまり、authorを変更(設定)するときにエラーが発生しているのです。もう少し細かく言うと、実は、pre-revprop-changeファイル内の設定で、authorの書き換えを禁止しているのが問題なのです。そこで、先ほど作成したデフォルトのpre-revprop-changeファイルの

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

の次の行に

if [ "$PROPNAME" = "svn:author" ]; then exit 0; fi

を追加してauthorの書き換えを許可してあげます。これで、Authorを変更(= svn:authorを変更)出来るようになりました。

成果

もう一度コミットしてみると、正しく終了します。そして、Historyでコミットしたファイルを見てみると、たしかにAuthorの欄が設定した名前になっています。めでたしめでたし。

Subversive便利

Authorを手軽に設定できることも便利ですが、そのほかにもSubclipseより便利なところがたくさんありました。細かいところですが、たとえばプロキシサーバを簡単にレポジトリごとに設定できるところや、SVNやSSHの接続ポートを簡単に設定できるところです。Subclipseユーザの型は、是非一度Subversiveを使ってみてくださいただ、SubclipseとSubversiveを一つのeclipseに同時にインストールするのはやめた方がいいです

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)
実用 Subversion 第2版
入門Subversion―Windows/Linux対応

Subversion | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。