TortiseSVNでコミット時にロックを外さない

このQ&Aのポイント
  • TortiseSVNからコミットしたときにロックの開放を行わないようにしたい。
  • TortiseSVNのコミット時のダイアログの「ロックを保持」にチェックする方法では、チェックし忘れがあるため少なくともデフォルトでチェックが入っているようにしたい。
  • 「post-commit」スクリプトにて svn lock --force xxx とコミットしたファイルを再ロックしようとしたが、できなかった。
回答を見る
  • ベストアンサー

TortiseSVNでコミット時にロックを外さない

サーバー:Subversion1.6.13 クライアント:TortiseSVN1.6.11 <やりたいこと> TortiseSVNからコミットしたときにロックの開放を行わないようにしたい。 ロックの開放はTortiseSVNメニューの「ロックの開放」のみで、出来るようにしたい。 <制限> TortiseSVNのコミット時のダイアログの「ロックを保持」にチェックする方法では、 チェックし忘れがあるため少なくともデフォルトでチェックが入っているようにしたい。 <ためしたこと> 「post-commit」スクリプトにて svn lock --force xxx とコミットしたファイルを再ロックしようとしたが、できなかった。 よい方法をご存知の方がいましたらよろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

サーバのOSはなんでしょう? コミット時にロックを解放する場合はpre-commitのフックの標準入力に LOCK-TOKENS: ~~~ って形式で入ってくるようです。 とりあえず、WindowsXPで(Trac Lightning 2.5.2でインストールされたもの)試した限りは… 以下のバッチファイルを該当のリポジトリのhookディレクトリに入れたところ、ロックを保持にチェックが付いていないとコミットできませんでした。 pre-commit.bat findstr "LOCK-TOKENS" if errorlevel 1 exit 0; echo "ロック保持でのみコミット可能です" >&2 exit 1 UNIX系でも標準入力に"LOCK-TOKENS"があるか確認することで制御できるのではないでしょうか?

diolab
質問者

お礼

なるほど! ロックをしない設定を強制させる方法ですか! 思いつきませんでした。 ありがとうございました!

関連するQ&A

  • Subversionでコミットするとエラーがでます

    Linux系OS上のApacheでSubversionを使用しています.post-commitを使用していますがクライアントからコミットすると,たまに以下のようなエラーがおきます. Failed to start '/svn/foo/hooks/post-commit' hook この原因や解決方法がわかる方はいませんか.

  • Subversionのコミットエラー通知し

    Linux環境(centOS6.5)でSubversion(1.6.xxx)の検証を行っているのですが post-commitフックでのコミット成功通知メールは完了しました。 しかし、コミットをcronで自動化する予定なので コミット時にエラーが発生した際に 関係者へコミットできなかった際のメール通知を行いたいと考えております。 調べてみるとできないような雰囲気なのですが どなたか有識者の方でご存じの方はいらっしゃらないでしょうか? メール通知問わず、エラーがどんな形でも関係者へ 通達できれば問題ありません。 運用としてログを見るしかないのであれば それも視野には入れてます。。。

  • Subversionコミットのタイムスタンプ

    ひとりで Subversion を使ってファイル管理をしています。 チェックアウト時には「コミットした日時」を使ってファイルのタイムスタンプを自動設定させていますが、コミット時にも、そのファイルのタイムスタンプで登録したいのです。 (2000 年に作ったファイルを 2013 年にコミットしたが、別のマシンで取り出す時には 2000 年とさせたい) インターネット検索してみたところ、オプションには存在するようなことが書かれていましたが、どうしたらよいかわかりませんでした。 コマンドラインでも svn help commit と入力してヘルプを見てみましたが、それらしいものがありません。 どなたかご存じないでしょうか?

  • subversionのpost-commitでsvn upを行うと、パーミッションエラー。

    クライアントからコミットした際に、post-commitで、svnでチェックアウトしている/var/www/sampleprojectディレクトリを"svn up"コマンドで更新をしたいと思っております。 しかし、tortoiseSVNからコミットすると、以下のエラーが表示されてしまいます。 <pre> エラー: post-commitフックが失敗しました (終了コード: 1)。出力: エラー: svn: ファイル '/var/www/sampleproject/.svn/lock' を開けません: 許可がありません </pre> post-commitの内容: <pre> #!/bin/bash REPOS="$1" REV="$2"LOG=/var/log/svn.log export LANG=ja_JP.UTF-8 echo $2 > ${LOG} whoami >> ${LOG} /usr/bin/svn up /var/www/enjoynight >> ${LOG} </pre> post-commitで出力したログを確認してみると、"svn up"を実行しているユーザーは"user1"でした。 /var/www/sampleprojectのオーナーはapacheユーザー(apache.apache)です。 ためしに、"user1"にapacheグループ権限を追加してみましたが、結果は変わりませんでした。 一日中悩んでも解決出来ませんでした。 もしよろしければ、どなたか解決策をご教授頂けないでしょうか。 サーバーOS:CentOS5.3 Subversion:1.6.2 Apache:2.2.3 passenger:2.2.3 Ruby:1.8.7 Rails:2.3.2 クライアントOS:Windows Vista tortoiseSVN:1.6.5 リポジトリへの接続方法:svn+ssh コミットユーザー:user1

  • SVN svn+ssh接続時のユーザについて

    数人の開発チームで使用するSubVersionの設定について悩んでいます。 CentOS 上にSubVersion をインストール済みです。とりあえず手軽な、svn+ssh で接続しようとしています。クライアントは、Eclipseのプラグインです。 今、user01(グループ=devgrp) で、/var/svn/testrepo1 を作成したとします。この後、testrepo1 のパーミッションを、775 に変更して、同じグループのユーザに対して書き込み許可します。 次に、別の開発者がuser02(グループ=devgrp) でtestrepo1 の中のあるソースを修正し、コミットしようとします。このとき、 svn+ssh://user02@<サーバ>/var/svn/testrepo1 でコミットしようとすると、特にエラーも出ないのですが、コミットができていません。 user01 が作ったリポジトリには、user01 でしか追加/更新ができないのでしょうか? まだ、SubVersion の仕組みを勉強しはじめたばかりなので、よく理解できていません。

  • SVNコミットエラー

    linux(Ubuntu)でSubVersionサーバを構築したのですが、 初回コミットをしたところエラーが出てしまいました。 エラー-------- svn import /home/svn/snavi/ http://localhost:80/repos/snavi -m "test commit" svn: PROPFIND リクエスト (相手: '/repos/snavi') が失敗しました svn: PROPFIND (URL: '/repos/snavi'): 301 Moved Permanently (http://localhost) -------------- この辺の記事(http://a98.jugem.jp/?eid=222)を参考に 色々試してみたのですが、解決できません。 apacheは起動しており、FireFoxからはテスト用HTML http://localhost/repos/snavi/test.html は参照出来ていますが、 http://localhost/repos/snavi/ へのチェックインが出来ないのです。 SVNのルート設定は以下で、 [svn設定]--- (/etc/apache2/mods-enabled/dav_svn.conf) <Location /svn> DAV svn SVNParentPath /home/svn/ </Location> ------------------------------------------- http://localhost:80/repos はSVNルートへのシンボリックリンクです。 [web(apache)設定]---------------- (ドキュメントルート) http://localhost → /opt/lampp/htdocs (シンボリックリンク) $ls -la /opt/lampp/htdocs lrwxrwxrwx 1 www-data www-data 9 2012-10-04 22:28 repos -> /home/svn ------------------------------------------- SVNルート以下には ------------------------------------------ cd /home/svn/ svnadmin create snavi ------------------------------------------ のようにsnaviブランチを作成したのですが、 やはりhttp://localhost/repos/snavi/ へのチェックインが出来ません。 有識者の方、いらっしゃいましたらどうか ご教授のほど宜しくお願い致します。

  • svnserverを設置したがコミットできない

    現在、自分のwindows10のPCにSVNサーバを、下記のサイトを参照しながらインストール作業を行っています。 WindowsにSubversion 1.12サーバーを構築する https://blogs.osdn.jp/2019/06/14/subversion.html 最後まで進めて、新規に作成したリポジトリの"repos"というのをtortoiseSvnで svn://192.168.1.188/repos というURLでチェックアウトするとできるのですが、テキストファイル1個をコミットしようとすると、なぜか Error Commit failed (details follow): Error Authorization failed このようなメッセージが出てきてコミットが失敗します。 メッセージ内容でググってみたところ次のようなサイトが出てきました。 https://axion.sakura.ne.jp/blog/index.php?UID=1414755723 このサイトの内容から、svnserve.confの中身の一部に修正を加えないといけないとのことなのですが、 C:¥Apache24 このフォルダ内にsvnserve.confのファイルが見当たらないのですが、どのように解決したら良いかご存知の方いらっしゃいましたら、ご教示よろしくお願い致します。

  • TortoiseSVNにて、コミットができません。

    TortoiseSVNにて、コミットができません。 TortoiseSVNにて、右クリックからコミットを選択し、変更項目確認画面で編集したファイルを選択した上でOKボタンを押下しても、反応がありません。 (一瞬だけウインドウを表示するような振る舞いを見せますが、以後反応なしです。エラーも出ません。) この他、マージ・ロックの取得も同様の現象でできません。 なお、これらの現象は突然現れたものではなく、TortoiseSVN初回インストール直後から発生しています。 ただし、チェックアウトや更新、差分の表示などは正常にできます。 また、コマンド(svn commit)によるコミットは正常に実行できます。 さらに、別のクライアントからは、GUIによるコミットができます。 特定のクライアイント特有の問題のようですが、原因がわかる方いらっしゃいますでしょうか? <試したこと> ・ファイアーウォールを無効にする ・日本語化バッチなしで、TortoiseSVNを再インストールする ・リポジトリで管理するファイル数を1つにし、1ファイルのみのコミットを試みる(ファイルサイズは10KB程度) ・匿名ユーザからのリポジトリへの書き込みも許可する <利用環境> WindowsServer2008上に svnserverを構築しており、ネットワーク経由でクライアントからリポジトリにアクセスしています。 また、特定のクライアイントからのみできないと記載しましたが、各クライアイントのOSは全て同じWindowsXPです。

  • Macでsubversionのコミットができない

    Win、Mac混在環境で、subversionによるデータ共有ついて質問です。 制作したサイトのhtmlデータ等を、 WinとMacそれぞれのsubversionクライアントを使用して subversionでデータを共有したいと考えています。 WinはTortoiseSVN、macはversionsを使用しています。 リポジトリを共有の外付けハードディスク(buffalo)に作成しました。 Winからはチェックアウト、コミット共に問題なく利用できますが、 Macからはチェックアウトは出来るが、コミットがエラーがでて出来ません。 エラーは下記のようなエラーになってしまいます。 Commit failed (details follow): Can't get exclusive lock on file '/Volumes/subversion/svn/db/txn-current-lock': Operation not supported MACのVersionsでのリポジトリのパスの指定方法がちがうのかな?と思っていますが、 いろいろ試してもうまくいきません。共有サーバのパスもMACとWinで異なるのでしょうか? よろしくお願いします。

  • Tortoise SVNのメッセージ欄に規定文字を

    SubversionのクライアントにTortoise SVNを会社で使用しているのですが コミットしたときにメッセージ欄に修正内容と個人IDを入力しています。 こんな感じです。 金額の上限のバグを修正 ID12345 このID12345の部分は毎回同じものを入力しなければならないので コミットしたときにデフォルトで最初から入力されているようにしたいのですが どのようにすれば実現できるのでしょうか? ご存じの方がおられましたらご回答をよろしくお願いします。

専門家に質問してみよう