ファイルの登録を制御する

Bazaarは何を追跡するのか?

前に説明したように、 bzr add は現在のディレクトリの元でBazaarがバージョン管理すべきだと考える すべてのものを見つけ登録します。登録するものは次のようなものになります:

  • ファイル
  • ディレクトリ
  • シンボリックリンク

Bazaarは興味を持つファイルと興味を持たないファイルに関してデフォルトのルールを持ちます。 後で説明される ファイルを無視する のようにこれらのルールを調整できます。

他の多くのVCSツールとは異なり、Bazaarはディレクトリを第一級の項目として扱います。 結果として、空のディレクトリは正しくサポートされます - ディレクトリが追跡されプロジェクトのエクスポートに含まれることを保証するために ディレクトリ内部にダミーファイルを作る必要はありません。

シンボリックリンクに関しては、シンボリックリンクの値は追跡され、 シンボリックリンクが指し示すものの内容は追跡されません。

注: プロジェクトの中のプロジェクトを追跡するサポート機能 (“入れ子ツリー”) は現在開発中です。 この機能の開発を手伝うもしくはテストすることにご興味がありましたらBazaarの開発者に連絡して下さるようお願いします。

登録を選ぶ

いくつかの事例において、登録したいものをBazaarに発見を任せるよりも明示的に指名したいことがあります。 これを行うためには、パスを引数として add コマンドに提供します:

bzr add fileX dirY/

ディレクトリを追加すると暗黙的にそのディレクトリの中の関心のあるすべてのものが追加されます。

ファイルを無視する

エディタのバックアップ、オブジェクト、バイトコードのファイル、ビルドされたプログラムなど、 多くのソースツリーはバージョン管理する必要のないファイルを含みます。 単純にこれらを追加しないでおくと、これらは常に未知のファイルとして現れます。 ツリーのトップでこれらを .bzrignore と呼ばれるファイルに追加することでBazaarにこれらのファイルを無視するように指示することもできます。

このファイルは一行ごとにファイルのワイルドカード(もしくは “globs”)の一覧を含みます。典型的な内容は次のとおりです:

*.o
*~
*.tmp
*.py[co]

globがスラッシュを含む場合、ツリーのトップからのパス全体がマッチします; さもなければファイルの名前だけにマッチします。以前の例では すべてのサブディレクトリ内の . の拡張子を持つファイルが無視されますが、 次の例ではトップレベルでは config.h だけと doc/ の中のHTMLが無視されます:

./config.h
doc/*.html

どのファイルが無視され何のパターンにマッチするのかについての一覧表を得るためには、 bzr ignored を使います:

% bzr ignored
config.h                 ./config.h
configure.in~            *~

無視するパターンがバージョン管理されていないファイルのみにマッチし、それらが”unknown”もしくは”ignored”として扱われるのかを制御します。 ファイルが明示的に追加されると、無視するパターンにマッチするかに関わらずバージョン管理されたままです。

.bzrignore ファイルは通常はバージョン管理されるので、ブランチの新しいコピーは同じパターンを見ます:

% bzr add .bzrignore
% bzr commit -m "Add ignore patterns"

bzr ignore PATTERN コマンドはPATTERNを .bzrignore ファイルに手軽に追加するために使われます (必要でBazaarによって追跡するために登録する場合、作られます)。 .bzrignore ファイルを直接編集することでパターンの除去と修正が行われます。

グローバルで無視する

プロジェクト固有のものではないが、ユーザー固有の無視されるファイルがいくつかあります。 編集者用の一時ファイルもしくは個人の一時ファイルのようなものです。 これらを無視するようにすべてのプロジェクトに追加するよりも、 bzrは ~/.bazaar/ignore の中でグローバルで無視するファイルをサポートします [1] 。 これはプロジェクト単位で無視するファイルと同じ構文を持ちます。

[1]Windowsにおいて、ユーザーの設定ファイルはアプリケーションデータディレクトリで見つかります。 ~/.bazaar/branch.conf の代わりに、設定ファイルは次のように見つかります: C:\Documents and Settings\<username>\Application Data\Bazaar\2.0\branch.conf 同じことが locations.confignore 、と plugins ディレクトリにも当てはまります。