我知道您可以跟踪对从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中尝试同样的事情似乎也有相同的结果。将文件重命名为全新名称没有问题,而尝试重命名已被“处理”的文件会导致冲突。有没有办法解决这个问题?
答案 0 :(得分:1)
我不会把这称为错误,因为你出于各种目的只更改了mercurial已经跟踪的文件的内容。 Mercurial按文件名和扩展名跟踪文件,您可以证明这与仅替换文件的全部内容没有区别。
答案 1 :(得分:0)
我在Mercurial的实际项目中遇到了这个问题。 GIT也看到了伪造的冲突(special.txt被删除和更新)。
Bazaar具有正确的重命名支持,并且它正确地合并了这个案例(对special.txt的更改被转移,application.txt按预期更新)。 Bazaar的问题(至少对我而言)是它缺乏IntelliJ支持。有2个插件,最近一次没有更新3年,上次我尝试使用最近的IntelliJ版本无法使用。 由于IDE在重构时需要调用“bzr mv”和“bzr rename”,缺乏支持会使Bazaar无法使用。
如果您需要IntelliJ支持,请在此处投票:http://youtrack.jetbrains.com/issue/IDEABKL-5344