2

最初の質問

ファイルの名前変更に関するメタデータを具体的に保存するツールまたはパッチはありますか(git-svnが「git-svn-id」で行うように)?これに失敗した場合、高速なローカルブランチ(gitなど)と適切なファイル名前変更の追跡(bazaarなど)を提供する別のDVCSはありますか?

ここで、なぜこれが必要なのかについての背景を説明します。

私は数ヶ月間gitを使い始めました、そして私はそれが本当に好きです。名前の変更を追跡しないという事実を除いて。

私の意見では、名前の変更を追跡しないという決定は、名前ではなくコンテンツが重要であるという誤った仮定に基づいています。同意しません。実際の例を挙げましょう。

RefinementPresentationWebページのビューテンプレートでモデルとして使用されるクラスがありました。クラスを別のパッケージ(モデル)に移動します。次に、クラスは単なるモデルではなく、重いロジックが含まれているため、ロジックを別のクラスに移動してリファクタリングしました。ご想像のとおり、このクラスは元のクラスとほとんど似ていません。しかし、概念的には同じことです。それでもビューのモデルです。そしてそれが私のポイントです。ファイルが同じファイル(名前の変更/移動)であるか、別のファイルであるかは私の頭の中の概念であり、ツールが私のためにそれを試みることはできません。非常に異なるため、ヒューリスティックや推測の量によって、これが実際に移動されたファイルであるとgitに認識されることはありません。つまり、gitlogは過去の移動の履歴を表示しません。もちろん、歴史はまだそこにあります-それは失われていません-それは単に到達するのが難しいです。したがって、私の質問:この不便を回避する方法はありますか?

編集:別々のコミットでの移動とリファクタリングは良い回避策です。以下のコメントを参照してください(イーブイに感謝します!)。

4

1 に答える 1

3

最小限の労力、最大の報酬:別々のコミットでファイルを移動およびリファクタリングします。

価値があるのは、gitがここで完全に狂っているわけではなく、それが何をするかについてさまざまな賢明な理由があります。それが多くの慰めであるということではありません。:)

于 2013-02-12T08:06:23.100 に答える