首先是问题:
git有没有什么工具或补丁可以让它专门存储关于文件重命名的元数据(就像git svn对“gitsvn id”所做的那样)?
如果做不到这一点,是否还有另一个dvcs可以提供快速的本地分支(如git)和正确的文件重命名跟踪(如bazaar)?
现在来了解一下我为什么需要这个:
我开始使用git有几个月了,我非常喜欢它。除了它不跟踪重命名。
在我看来,不跟踪更名的决定是基于错误的假设,即重要的是内容,而不是名字。我不同意。让我给你举一个真实的例子。
我有一个类RefinementPresentation用作网页视图模板中的模型。我将类移到一个单独的包(模型)中,然后,由于该类不仅仅是一个模型,而且包含大量逻辑,我通过将逻辑移到另一个类中来重构它。你可以想象,现在这个类与原来的类几乎没有什么相似之处。但从概念上讲,这是一样的——它仍然是视图的模型。这就是我的观点。文件是同一个文件(重命名/移动)还是不同的文件在我脑海中是一个概念,没有任何工具可以或应该尝试为我这样做。由于如此不同,再多的试探或猜测也不会让git认识到这实际上是一个移动的文件。这意味着git日志永远不会显示过去的移动历史。当然,历史依然存在——它没有消失——只是更难找到。因此我的问题是:有没有办法不给你带来这种不便?
编辑:在单独的提交中移动和重构是一个很好的解决方法,请参见下面的注释(谢谢eevee!)是的。

最佳答案

最少的努力,最大的回报:在单独的提交中移动和重构文件。
就它的价值而言,git在这里并不是完全疯狂的,它有various sensible reasons的价值,但这并不是一个很大的安慰。:)

关于git - git扩展以显式跟踪文件重命名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14826983/

10-13 05:22
查看更多