Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control Mercurial:您能跟踪已重命名为另一个跟踪文件的文件中的更改吗?_Version Control_Mercurial_Merge - Fatal编程技术网

Version control Mercurial:您能跟踪已重命名为另一个跟踪文件的文件中的更改吗?

Version control Mercurial:您能跟踪已重命名为另一个跟踪文件的文件中的更改吗?,version-control,mercurial,merge,Version Control,Mercurial,Merge,我知道,您可以跟踪从repo到克隆的重命名文件的更改。然而,当我将一个文件重命名为一个已经被跟踪的文件名时,我似乎遇到了一个问题。本质上,我想复制一个跟踪文件 原始回购中的文件: application.txt special.txt 然后克隆回购,删除application.txt并将special.txt重命名为application.txt 我希望下次我在原始回购协议中对special.txt进行更改时,这些更改将继续到application.txt。然而,事实并非如此。我收到这个消息

我知道,您可以跟踪从repo到克隆的重命名文件的更改。然而,当我将一个文件重命名为一个已经被跟踪的文件名时,我似乎遇到了一个问题。本质上,我想复制一个跟踪文件

原始回购中的文件:

application.txt
special.txt
然后克隆回购,删除
application.txt
并将
special.txt
重命名为
application.txt

我希望下次我在原始回购协议中对
special.txt
进行更改时,这些更改将继续到
application.txt
。然而,事实并非如此。我收到这个消息

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

在Git中尝试同样的东西似乎会得到同样的结果。将文件重命名为全新名称没有问题,而尝试重命名已“获取”的文件会导致冲突。有什么办法可以解决这个问题吗?

我不认为这是一个bug,因为您已经更改了mercurial已经跟踪的文件的内容。Mercurial按文件名和扩展名跟踪文件,您可以认为这与替换文件的全部内容没有什么不同。

我在Mercurial的实际项目中遇到了这个问题。GIT也发现了虚假冲突(special.txt被删除并更新)

Bazaar提供了适当的重命名支持,并且它正确地合并了这个案例(对special.txt的更改将继续进行,application.txt将按预期进行更新)。 Bazaar的问题是(至少对我来说)缺少IntelliJ支持。有2个插件,最近的一个已经3年没有更新了,上次我尝试的时候,它在最近的IntelliJ版本中不可用。 由于重构时IDE需要调用“bzr mv”和“bzr rename”,因此缺少支持使Bazaar对我来说不可用


如果您希望IntelliJ对此提供支持,请在此处投票:

您是否用
hg mv
告诉hg重命名?Hg不会自动跟踪文件重命名,如果要重命名或复制文件,必须明确告诉Hg。是。首先我尝试了
hg rm application.txt
然后
hg mv special.txt application.txt
。我还尝试了
hg mv special.txt application.txt-f
。无论哪种方式,在进行下一次合并时,我都会遇到冲突。在删除
application.txt
然后重命名
special.txt
之后,我还尝试了提交。还是不行。我在Mercurial的bug追踪器上记录了一个bug。将随着我了解的更多而更新。同意。虽然我似乎不能做我想做的事情有点让人沮丧,但Mercurial的行为还是如愿的。