svn:ignoreで無視されるもの
なんか混乱したので、忘れないようにメモ。
当たり前と言えば当たり前すぎるのだが‥
事前準備
前提として、「/var/lib/svn」の下にリポジトリディレクトリを作成するものとする。
# cd /var/lib/svn # sudo -u apache svnadmin create test
実験
Webサーバー経由でSVNリポジトリにアクセスする準備は整っているものとする。
$ svn --version --quiet 1.6.11 $ svn checkout http://localhost/svn/test リビジョン 0 をチェックアウトしました。 $ cd test $ mkdir files $ svn add files $ cd files $ for f in committed committed.edited ignored.committed ignored.committed.edited > do > echo a > ${f} > done $ svn add committed committed.edited ignored.committed ignored.committed.edited $ svn commit -m '' . committed committed.edited ignored.committed ignored.committed.edited 追加しています files 追加しています files/committed 追加しています files/committed.edited 追加しています files/ignored.committed 追加しています files/ignored.committed.edited ファイルのデータを送信しています .... リビジョン 1 をコミットしました。 $ svn propset svn:ignore 'ignored.*' . 属性 'svn:ignore' を '.' に設定しました $ svn commit -m '' . 送信しています files リビジョン 2 をコミットしました。 $ for f in added ignored.added > do > echo a > ${f} > done $ svn add added ignored.added $ for f in notmanaged ignored.notmanaged > do > echo a > ${f} > done $ echo b >> committed.edited $ echo b >> ignored.committed.edited $ cd .. $ pwd /home/hhelibex/tmp/test $ ls -1 files added committed committed.edited ignored.added ignored.committed ignored.committed.edited ignored.notmanaged notmanaged $ svn status ? files/notmanaged A files/added M files/committed.edited A files/ignored.added M files/ignored.committed.edited $ svn status --no-ignore I files/ignored.notmanaged ? files/notmanaged A files/added M files/committed.edited A files/ignored.added M files/ignored.committed.edited $
結論
「svn:ignore」で無視されるのは、バージョン管理下に置かれていない(commitはもちろん、addすらされていない)ファイルに限定される。
‥当たり前だ‥
‥いや、無視するパターンをファイルに書いて、そのファイル自身もignore対象に入れて、パターン一覧を書いたファイルをバージョン管理するっていう矛盾したサンプル(何)を見つけて混乱したので‥