私が働いている会社は立ち上げ中で、その過程で名前が変わりました。そのため、ファイルの変更履歴やバージョン間の祖先のリンクなど、壊れる可能性のあるものを壊すことを恐れているため、パッケージ名 com.oldname を引き続き使用しています (正しい用語を使用しているとは思いませんが、概念は理解できます)。 )。
使用するもの: Eclipse、TortoiseSVN、Subversion
.svn フォルダーの内容と Java ファイルのパッケージ名との間の不一致を防ぐために、多くの手順でそれを行う必要があることをどこかで見つけました。
- 最初に TortoiseSVN を使用してディレクトリの名前を変更し、.svn ディレクトリを更新します。
- 次に、ディレクトリの名前を手動で元の名前に戻します。
- 最後に Eclipse を使用してパッケージの名前を変更し (リファクタリング)、Java ファイルを更新して新しい名前に戻します。
それは私には良いことのように思えますが、祖先や歴史、その他すべてが一貫してうまく機能するかどうかを知る必要があります.
私はそのサーバーへの鍵を持っていません。そのため、急いでバックアップを取ったり、1 つまたは 2 つのことを試したりすることはありません。やらない正当な理由や、うまくいく方法を考えてみたいと思います。
ご協力ありがとうございました、
M.ジョアニス
パッケージの名前変更テスト
手順:
- 新しいパッケージ com.oldname.test.renametest.subpackage を作成します。
renametest の下に RenameTest0.java という名前の新しいクラスを追加し、以下を含みます。
クラス RenameTest0 { public RenameTest0() { showMessage(); 新しい RenameTest1(); } public static void showMessage() { System.out.println("RenameTest0!"); } public static void main(String[] args) { 新しい RenameTest0(); } }
以下を含む renametest.subpackage の下に新しいクラスを追加します。
クラス RenameTest1 { public RenameTest1() { showMessage(); RenameTest0.showMessage(); } public static void showMessage() { System.out.println("RenameTest1!"); } }
RenameTest0 が正常に動作することをテストします。
- 専念。
- 両方のクラスのメッセージを変更します。
- 専念。
- ここでも、1 つのクラスのメッセージを変更してコミットします (履歴を作成するだけです)。
- 上記の手順 (元のメッセージの 3 つの手順) を適用して、パッケージの名前を renametest から testrename に変更します。
- 専念。
- テスト走行。
- メッセージを再度変更してテストします。
- 専念。
- 最初に両方のメッセージが同時に変更されたバージョンにロールバックしてみてください。
- ここまでうまくいっていれば、よさそうですよね?
テストの結果:
- ステップ 9 の注意:逆の順序で実行する必要がありました(Eclipse の名前を変更し、次に TortoiseSVN の名前を変更します)。そうしないと、TSVN が新しいフォルダー/パッケージを作成し、古いフォルダー/パッケージを削除するようにマークするため、複雑になっていました。 .svnフォルダーなどを失うのを防ぐために、その間に古いパッケージを別の場所に配置しない限り、Eclipseの名前を変更します。この方法をさらに進めるのは良い考えではありませんでした。(自分へのメモ: 再帰的なパッケージの名前変更のチェックボックスをオンにすることを忘れないでください!)
- ステップ 14 に関する注意: うまくいきました! 以前のバージョンを見ることができます。コピー/移動で中断しないように指示するだけでOKです。名前を変更する前のバージョンに戻すと、パッケージ名は適切な名前には戻りませんが、おそらく再度リファクタリングするとうまくいくでしょう。
- 終わりの注: 重要なステップを逆の順序で実行しなければならないことに驚きました。この最初のパッケージの名前変更試行の途中でこれを行うには、いくつかの TSVN と手動の変更をロールバックする必要があり、この手順の正確な結果の再現性に少し疑問を投げかけました. その有効性を確認するために、2 回目のテストを行う必要があります。要約すると、良さそうに見えますが、さらにテストする必要があります。