Eclipse + Subclipseで名前変更しても履歴が引き継がれる

まとめ

Eclipse + Subclipseの環境で、リファクタリングで名前変更、移動を行っても、ちゃんと履歴も引き継がれます。

経緯

第25回 JavaEE勉強会のせとあずささんの発表の「OSSの構成管理」のスライドのなかで、Eclipseリファクタリングを使ってリネームとかムーブすると、履歴が引き継がれない、って書いてあったけど、自分の過去の経験では「うおーリファクタリングから名前変更してもちゃんと履歴繋がってるよーSubclipse超かわいいぜー」とか思ったことがあったので、気になったので試してみました。

試したのは以下の2種類の環境でどっちもokでした。

E:.
│  .classpath
│  .project
│
├─.settings
│      org.eclipse.jdt.core.prefs
│      org.eclipse.jdt.ui.prefs
│
└─src
    └─erorrtrace
            Hoge.java

みたいな構成のをリポジトリに追加。この時点でのコミットログは以下。

Revision: 383
Author: shrkw
Date: 19:18:03, 2007年1月13日
Message:
new
----
Added : /trunk/Test/.classpath
Added : /trunk/Test/.project
Added : /trunk/Test/.settings
Added : /trunk/Test/.settings/org.eclipse.jdt.core.prefs
Added : /trunk/Test/.settings/org.eclipse.jdt.ui.prefs
Added : /trunk/Test/src
Added : /trunk/Test/src/erorrtrace
Added : /trunk/Test/src/erorrtrace/Hoge.java

この状態で、Hoge.javaをHogeMod.javaに、Eclipseリファクタリング→名前変更を使って変更。するとこんな感じ。

E:.
│  .classpath
│  .project
│
├─.settings
│      org.eclipse.jdt.core.prefs
│      org.eclipse.jdt.ui.prefs
│
└─src
    └─erorrtrace
            HogeMod.java

ログはこんなの。

Revision: 387
Author: shrkw
Date: 19:35:11, 2007年1月13日
Message:
繋がるかな
----
Deleted : /trunk/Test/src/erorrtrace/Hoge.java
Added : /trunk/Test/src/erorrtrace/HogeMod.java(Copy from path: /trunk/Test/src/erorrtrace/Hoge.java, Revision, 383

HogeMod.java単体でログを確認してもちゃんと繋がってました。

Revision: 387
Author: shrkw
Date: 19:35:11, 2007年1月13日
Message:
繋がるかな
----
Deleted : /trunk/Test/src/erorrtrace/Hoge.java
Added : /trunk/Test/src/erorrtrace/HogeMod.java(Copy from path: /trunk/Test/src/erorrtrace/Hoge.java, Revision, 383

Revision: 383
Author: shrkw
Date: 19:18:03, 2007年1月13日
Message:
new
----
Added : /trunk/Test/.classpath
Added : /trunk/Test/.project
Added : /trunk/Test/.settings
Added : /trunk/Test/.settings/org.eclipse.jdt.core.prefs
Added : /trunk/Test/.settings/org.eclipse.jdt.ui.prefs
Added : /trunk/Test/src
Added : /trunk/Test/src/erorrtrace
Added : /trunk/Test/src/erorrtrace/Hoge.java

ということなので、単純な要件であれば、普通に作業して普通に履歴が繋がります。たぶん、履歴が切れるっていうのはもっと複雑なことをしたときなんでしょうか。やっぱり気になります。