Subversionがチェックイン時にファイルをchown / createするのはなぜですか?
-
03-07-2019 - |
質問
メモを取る個人用ウィキがあります。ウィキのページはSubversion作業コピーディレクトリ「ページ」にあり、www-data:www-dataが所有するアクセス許可を664に設定します。ユーザー名は" www-data"にありますグループなので、手動でページをチェックインしたり、いじったりできます。
しばらくの間、チェックインを実行するたびに、ファイルがwww-data:www-dataではなくme:www-dataによって所有され、変更できなくなったため、問題がありました。私のウェブインターフェースを介してwikiファイル! 「ページ」のsetgidビットを反転することで問題を解決しました。ディレクトリ、しかし私はまだこれが最初に起こった理由についてまだ混乱しています:
何かをSubversionにチェックインするたびに、svnがそれを削除して再作成するように見えます。どうして?この動作は、私が知らない機能をサポートしていますか?変更する方法はありますか?
ありがとう!
解決
「スティッキー」を設定します;許可ビット。
find -type d -exec chgrp www-data {} +
find -type d -exec chmod g+s {} +
これにより、チェックアウトのファイル作成フェーズで、最後に編集した人に切り替えるのではなく、ディレクトリのアクセス許可を継承するようになります。
編集:ダウ+ s == setgid。後世や他の読者のためにここに残された情報。
他のヒント
間違った使い方をしていると思います。あなたができることは、まだすべてをSubversionに入れて、あなたが開発するwwwディレクトリとは別のローカル作業コピーを持っていることです。
その後、いくつかのスクリプト(おそらく post-commit フック)は、それに応じて許可を設定します。
ワークフローは次のようになります:
- / home / youruser / yourwiki-working-copy /のファイルを編集します
- svn commitを実行
- post-commitフックは、/ var / www /(またはWikiのある場所)内のファイルを更新します
- goto 1。
この方法では、権限を心配する必要はありません。バージョン管理のすべての利点を備えたWebサイトで複数の人が作業することさえできます。