svnを中断せずにクラスをEclipseの別のパッケージに便利に移動する
質問
old.packageからnew.package
にファイルを移動するとき、次の2つのことを実行する必要があります。
- そのクラスへのすべての参照を(プロジェクトのすべてのファイルで)更新して、新しいパッケージが使用されるようにします
-
svn move old / package / Foo.java new / package / Foo.java
Eclipse Ganymede内で破壊を使用しています。あるパッケージから別のパッケージにファイルをドラッグするだけで、すべての参照が更新され、ファイルシステム上でファイルが移動します。しかし、SVNはこれを認識していないため、 old / package / Foo.javaの場合、
は存在しません(Eclipseによって既に移動されているため)。 svn move old / package / foo.java new / package / Foo.java
コマンドは(明らかに)動作しません。
日食にリファクタリングをさせる方法はありますが、svnを使用してファイルシステム上のファイルを移動しますか?明らかな何かを見逃していると思います:-)
解決
Subclipse を使用していますが、パッケージ間でのファイルの移動をサポートしています >
他のヒント
実験してきましたが、方法を見つけたと思います:
1)右クリックしてドラッグするコンテキストメニュー(または必要なSVNメソッド)を使用して、ファイルをトータスムーブします。
2)Windowsファイルシステムを使用して元に戻します。
3)Eclipseでファイルをドラッグして移動し、すべての参照を更新します。
4)コミット-削除/追加として表示されますが、履歴を保存し、1回のコミットでパッケージ参照を変更します(各コミットをビルド可能に保ちます)。
古い質問ですが、私はそれに戻り続けているので、これが私のドキュメントです!
ユヴァルの権利。これは、Subversiveの(非常に残念な!)欠陥のように聞こえます。 (Subversiveの経験がありません)
ファイルを移動するだけでは十分ではないため、両方を同時に行うことはできません。コードを再度コンパイルするには、ファイルを変更する必要があります。そのため、Eclipseでリファクタリングし、移動後にSubclipseに魔法をかけます(古いファイルを削除し、新しいファイルを追加します)。
Eclipseにリファクタリングを行わせると、実際にSVNがルートディレクトリをコミットするときに取得する必要がある実際のファイルに変更が加えられますか?しかし、移動によってそれが削減されるとは思わない。SVNは、ファイルが元のディレクトリにないことを確認し、新しいディレクトリから再度追加する必要があります。厄介な状況です。最善の方法がわからないでしょう。リファクタリングを行ってから、個人的にルートをコミットします。それは動きではありません。