2009-08-01 12 views
6

私は私のPHPプロジェクトの1つにSubversionを使用しています。Subversionはファイルアクセス権と.htaccessファイルをどのように扱いますか?

  1. ファイル権限はどのようにSubversionで処理されますか?私が755にCHMODするファイルを持っていて、そのファイルをリポジトリにチェックインすると、他の作業コピーにチェックアウトされたときに同じパーミッションになりますか?それがコピーされない場合は、すべてのチェックアウトでアクセス権を変更する必要がありますか?
  2. リポジトリにチェックインしたくない.htaccessファイルがあります。 .htaccessが含まれている作業コピーで更新を行うと(リポジトリにそのファイルがない)、ファイルが削除されるのか、それとも更新が残されますか?

答えて

11
  1. Subversionが知っている唯一の実行可能ビットは、特別な "svn:executable"プロパティとして格納されている実行可能ビットです。このプロパティが定義されている場合、ファイルはexecビットがセットされた状態でチェックアウトされます。 rwフラグについては、あなたのumaskに依存します。 umaskが例えば0022の場合、svn:実行可能ビットがないファイルはパーミッション0644でチェックアウトされます。umaskが0002の場合、パーミッションは0664になります。svn:executableが設定されている場合、execビットは所有者、グループ、その他すべての人。
  2. 追加のために.htaccessをマークしないと(svn add)、svnはファイルをそのまま残します。コミットするとリポジトリには入りませんし、svn updateを実行すると削除されません。あなたは "?" "svn status"を実行するとその前に表示されます。
+0

偉大な説明sunny256ありがとう。私はアクセス権に関しては本当に専門家ではありませんが、755を必要とする特定のディレクトリと644または777を持つ必要があるディレクトリがあることを知っています。つまり要するに、 ?もしそうなら、すべてのチェックアウトのために手動でアクセス許可を変更する必要がありますか?それとも別の方法がありますか?再度、感謝します。 –

+0

いくつかのディレクトリに対して特別な権限が必要な場合は、作業コピーを更新するスクリプトを作成し、さまざまなディレクトリをchmodすることができます。 wwwデータユーザーのコンテンツを非表示にして、ユーザーのみに限定したいのですか、または...?ディレクトリパーミッションを644に設定すると(実行可能ビットを削除します。つまり111)、誰もそれを入力することができません。 – sunny256

+0

すべてのrwxの組み合わせをディレクトリでテストする場合は、空のtestdirを作成して入力し、次のコマンドを実行します。すべての可能なrwxの組み合わせを持つ512のディレクトリが作成され、アクセス権の仕組みがわかります。ここでは、a $(seq 0 7); $(seq 0 7)でbに対して行う。 $(seq 0 7)でcに対して行う。 echo $ a $ b $ cを作成します。 mkdir $ a $ b $ c; chmod $ a $ b $ c $ a $ b $ c;完了しました。完了しました。 – sunny256

0

1)...アクセス権は転送されません。

2)...更新は、バージョン管理下にない限り、それをそのままにします。

つまり、これらのアイデアを再確認してください。お願いします。

+0

感謝を。 「そのアイデアをダブルチェックする」とはどういう意味ですか?私が何か悪いことをしているなら、あなたの助言を得たいと思う。ありがとう:) –

1

#2の場合は、単に.htaccessをsvn:ignoreプロパティに追加することができます。それは何をし、どのようにその仕事をしっかりと受け取りますhttp://blog.bogojoker.com/2008/07/command-line-svnignore-a-file/ ファイルをチェックアウトすると、それは実行可能でなければ読み取り/書き込み権限を与えられます。実行可能権限はsvn:executable権限を持ち、チェックアウトされます。ファイルには、明示的にSVNでマークすることができます:それは読み取り専用ですでに述べた

+0

私はsvn:executableはファイル上でのみ動作することを読んだ。どのように私はディレクトリのためにそれを実装することができますか、またはチェックアウトごとに手動で権限を変更する必要がありますか? –

+0

あなたは "svn propset svn:executable '*' "を実行して、必要なだけ多くのファイルにコミットすることができ、その時点から実行可能フラグを保持します。 – Bostone

1
  1. として、SVNなりませんストアの権限をチェックアウト時になり、ロックを必要とします。

    理由は簡単です:

    彼はすでに、すべての読み取り/書き込み権限をしているとして、それが権限を付与しても意味がありませんので、チェックアウトをしたユーザーは、自分の作業コピー内のすべてのファイルの所有者になります彼の作業コピーの中のファイル(彼のumaskに依存する)。

    e x ecutableフラグにはsvn-property svn:executableが設定されています。

  2. .htaccessファイル

    あなたは、親ディレクトリのsvnに.htaccessファイルを追加する必要がありますプロパティを無視します。

    しかし、SVNはあなたに最初に尋ねることなく変更を変更したり上書きしたりしません。だからあなたのバディの一部がリポジトリに.accessファイルを保存すると、SVNは更新を中止し、続行するためにあなた自身の.htaccessファイルを削除しなければならないと言います。

-4

ファイルを実行可能にする方法の例:応答のための

svn propset svn:executable ON filename