TortoiseSVN で 望まないコミットを防ぐには?

No Photo

Amazon で購入した本と本屋に行って買った本がダブって涙目、ktanaka です。

今日は、Subversion(TortoiseSVN) でコミットしたくないけど必要なファイルのうまい扱い方について考えます。

Subversion はチームが安心してプロジェクトを進めるためにつかうものですが、Subversionを使うことを決めたために起こる悩みというのもあります。そのなかに一つが、コミットしたくないものを間違ってコミットしてしまうことではないでしょうか。そういった状況でいくつかの手段のなかから適切な方法を選ぶことができれば、無駄な時間が減らせるでしょう。

目次

  • 常に不要だけど生成されちゃうファイル Thumbs.db
  • 特定のディレクトリでコミットする必要のないもの (ログ、キャッシュファイル)など
  • すでに Subversionで管理していてコミットしたくないローカルな変更 (デバッグ定数、自動処理でタイムスタンプだけ変更されるとき)

常に不要だけど生成されちゃうファイル Thumbs.db

常に Subversion で管理する必要のないファイルがあります。Thumbs.db というファイルがそれです。エディタのバックアップファイルもこれにあてはまるかもしれません。これらのファイルはチームで共有する必要が全くありません。こういった場合は、PC全体で無視しておくと楽です。設定方法は右クリックして「TortoiseSVN→設定」で表示されたダイアログの「一般→Subversion→除外するパターン」に Thumbs.db を追加しておきます。この設定は「ファイル名で、コミットする必要がないことが完全にわかっている」ときに使います。

20090520tanaka_tortoisesvn1.png

特定のディレクトリでコミットする必要のないもの (ログ、キャッシュファイル)など

次にコミットしたくないファイルはログやキャッシュファイルです。一つ上の項目のように、ファイル名で完全に除外を決められないけど、特定のディレクトリ内では不要なことがはっきりしていることってありますよね。この場合は「属性」を使います。属性はいろいろな目的で使えますが、今回は、不要なファイルがコミットダイアログに表示されないようにするために使います。

たとえば、logディレクトリにあるログファイルをコミット対象外にすることを考えてみましょう。「log」ディレクトリを右クリックし、「TortoiseSVN→属性」を選びます。「新規...」を選び、属性名を「svn:ignore」、属性値を「*」を選びOkを押します。

20090520tanaka_tortoisesvn2.png

すでに Subversionで管理していてコミットしたくないローカルな変更 (デバッグ定数、自動処理でタイムスタンプだけ変更されるとき)

最後はすでに管理しているファイルの変更をコミットしたくないときの話です。あまり頻繁に起こることではないと思いますが、開発環境でデバッグ定数を変えているとか、なんらかのツールで管理しているファイルのタイムスタンプだけが変わるとか。そういった場合は「ignore-on-commit」を使うとよいです。

右クリック「TortoiseSVN→変更をチェック」すると、変更をコミットしたくないあのファイルが!さらにそのファイルを右クリックし、「変更リストへ移動→ignore-on-commit」を選べばOKです。

20090520tanaka_tortoisesvn3.png

まとめ

いかがでしょうか。3番目の機能は比較的新しめの機能なので、使ったことがない方もいらっしゃるかもしれません。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ