Q:Subversionでサーバーサイドにてignoreの設定をすることは可能か
Subversionでサーバーサイドにてignoreの設定をすることは可能でしょうか?
A:一次回答
トラックパスのSubversionリポジトリではサーバ側の設定機能を提供しておりません。
Subversion リポジトリは、リポジトリにコミットしているフォルダに対し svn:ignore 属性で無視する名前を設定し、これをコミットする構造になっています。 つまり、コミットが必要になることから、サーバーサイドからリポジトリに対して直接 svn:ignore を設定するということはできません。
サーバーサイドから svn:ignore を設定したいというのは、実際にはどういったことを達成されたいのでしょうか。よろしければお教えください。
svn:ignoreですが、Subversionクライアント側での設定による対応をご検討ください。
Q:再質問
実際にはMacで使う際に「.DS_Store」をignoreしたいと思いました。
>> Subversion リポジトリは、リポジトリにコミットしているフォルダに対し svn:ignore 属性で無視する名前を設定し、これをコミットする構造になっています。
無視する名前の設定をリポジトリに対してはできるのでしょうか? ローカル側での対応となるという認識でしょうか。
A:回答
Subversion リポジトリに対してもローカルに対しても設定できます。 リポジトリに設定すれば作業者全員でその設定を共有することになりますしローカルに設定すればそのローカルで作業する人だけに適用されることになります。
また svn:ignores 属性はこの属性を設定したフォルダにのみ適用されるため、.DS_Store のようなファイルを除外したいケースにはおそらく向いていないと思われます。
そういうケースの場合には、代わりに svn:global-ignores 属性を使うとこの属性を設定したフォルダとそのサブフォルダすべてに適用されます。
例) リポジトリに設定する場合
======== Subversion 1.10 以降の場合 -------- ### エディターが上がってくるので無視したいファイル名を一行ずつ記述して保存する。 ### ファイル名にはワイルドカードが使えます。 ### エディターを終了するとコミットメッセージのためにもう一度エディターが上がってくる。 $ svn propedit svn:global-ignores https://your-sitename.example.com/svn/reponame/trunk Subversion 1.8 - 1.9 の場合 -------- ### オプション --depth=empty をつけることで作業ディレクトリにフォルダやファイルを ### 作らないようにする $ svn checkout --depth=empty https://your-sitename.example.com/svn/reponame/trunk $ cd trunk ### エディターが上がってくるので無視したいファイル名を一行ずつ記述して保存する ### ファイル名にはワイルドカードが使えます $ svn propedit svn:global-ignores . $ svn commit
例) ローカルに設定する場合
======== ~/.subversion/config ファイルをエディターで開いて [miscellany] セクションに global-ignores オプションを記述する。複数ある場合はスペースで繋いで記述する。 [miscellany] global-ignores = .DS_Store Thumb.db
備考
TortoiseSVN の場合は、リポジトリブラウザに対象の URL を入力しそこから対象フォルダを右クリックし「プロパティを表示」でそのフォルダに対する属性の確認・設定が行えます。