NetBeans のリファクタリングコピー2008年12月01日 16時10分54秒

NetBeans でファイルを「コピー」した後に、「パッケージ」を選択しすると「ペイスト」「リファクタリングコピー」が出来る。これは、ファイルを複製し、クラスの名前だけを変えて新しいクラスを作る。

しかし、これが「バージョン管理」を行っていると相性が良くない。元もと、ファイル名の変更や、ファイルのコピーをサポートしていない CVS なら、直接的な問題にはならない。しかし、Subversion や Mercurial などの、これらの変更を追うプログラムだと、NetBeans をとおして変更を行うと、これらの履歴が記録されない。

そこで、ファイル名を変更したり、ファイルをコピーする場合には、コマンドラインにて、svn copy FileA.java FileB.javahg rename FileC.java FileD.java の様に、呼び出した方が良い。NetBeans からのバージョン管理は、これらのプログラムからの出力を GUI を用いて表示しているだけなので、何ら問題は無い。また、NetBeans がファイルの出現、消滅を検知してくれるので、こちらの問題もない。

このやり方だと、NetBeans がクラス名などを変更してくれなくなるので、コンパイルは失敗するようになる。しかし、基本的にコンパイルエラーを元に簡単に修正できる。それよりも、履歴を正しく記録できないことの方が、悩みは大きい。