我々はIDトラッキングをサポートするVCSを使用する場合AImp.javaの完全な履歴をしたい(そしてそれは古いからマージするために、我々は、我々が与えられた実装Gitの名前を変更して、同じ古い名前の新しいファイルを作成する - git logの期待される動作?
Rename file A.java to AImp.java
Create new file A.java
からインターフェイスを抽出したいときに我々はそれを行う一般的なパターンを持っていたがA.java)はAImp.javaに
をマージされます今、私たちは、Gitのに移動し、そして私は、このパターンを繰り返したい:
echo "class A {}" > A.java
git add .
git commit -m "new class A"
git mv A.java AImp.java
git commit -m "rename A->Aimp"
echo "interface A {}" > A.java
git add .
git commit -m "create new interface A"
私は分離された二つの中で名前の変更と追加をやっているので、名前変更のコミット検出が機能する。
e7579fb (HEAD -> master) create new interface A
610a9b3 rename A->Aimp
b94e8bf new class A
しかし、(私の意見表明のための)A.javaの歴史は間違っている:: 現在の歴史は、このようなものです
e7579fb (HEAD -> master) create new interface A
:
git log --oneline --follow A.java
e7579fb (HEAD -> master) create new interface A
610a9b3 rename A->Aimp
b94e8bf new class A
私だけ見に期待しましたどう思いますか ?
(私は検出アルゴリズムの名前を変更するに起因する、私はAimp.javaに古いA.javaからマージ期待できないことを知っている)
おかげ
ボアズ