Mercurial:您是否可以跟踪已更名为另一个跟踪文件的文件中的更改?

问题描述:

我知道您可以将重新命名文件的更改记录到其克隆中。但是,当我将文件重命名为已被跟踪的文件名时,我似乎遇到了问题。本质上,我想复制一个跟踪的文件。Mercurial:您是否可以跟踪已更名为另一个跟踪文件的文件中的更改?

文件中原来的回购:

application.txt 
special.txt 

然后克隆回购,删除application.txt和重命名special.txtapplication.txt

我希望下一次我在原来所做的更改special.txt回购,这些变化将继续到application.txt。但是,它没有。我得到这个消息

local changed special.txt which remote deleted 
use (c)hanged version or (d)eleted? 

在Git中尝试这个相同的东西似乎有相同的结果。将文件重命名为全新的名称在试图重命名已经被“取用”的文件时会导致冲突,因此没有任何问题。有没有办法解决?

+1

你告诉汞柱'汞mv'重命名? Hg不会自动跟踪文件重命名,如果要重命名或复制文件,则必须明确告诉hg。 – Rudi

+0

是的。首先我尝试了'hg rm application.txt',然后'hg mv special.txt application.txt'。我也尝试过'hg mv special.txt application.txt -f'。无论哪种方式,在进行下一次合并时,我都会遇到冲突。 –

+0

我也尝试删除'application.txt'后尝试提交,然后重命名'special.txt'。仍然不起作用。 –

我不会真的把这种错误,因为你所有的目的只是改变了水银已跟踪文件的内容。 Mercurial通过文件名和扩展名来跟踪文件,并且可以证明这与替换文件的全部内容没有什么不同。

+0

同意。虽然我似乎无法做到自己想做的事情,但有点令人沮丧,但Mercurial的行为正如预期的那样。 –

我只是有这个问题与水银一个真实的世界项目。 GIT也看到假的冲突(special.txt被删除和更新)。

集市有适当命名的支持并正确合并(修改special.txt被结转和预期application.txt得到更新),这种情况下。 Bazaar的问题虽然(至少对我来说)是缺少IntelliJ支持。有2个插件,最近3年没有更新过,上次我尝试过,最近的IntelliJ版本无法使用。 因为在重构时需要由IDE调用“bzr mv”和“bzr rename”,所以缺乏支持会使Bazaar无法使用。

如果你想为这个的IntelliJ的支持,投票在这里:http://youtrack.jetbrains.com/issue/IDEABKL-5344