“破坏Mercurial文件”;链接;?

“破坏Mercurial文件”;链接;?,mercurial,Mercurial,我们似乎把我们的一些HG配置搞砸了 合并时,我们会看到以下几个条目: warning: detected divergent renames of core/src/main/java/x/y/z/MyFile.java to: core/src/main/java/x/y/z/NewFileA.java core/src/main/java/x/y/z/NewFileB.java MyFile不应链接到“新文件”。你怎么能断开这个链接 事后不能断开链接。链接是在您(很可能)创建时创建的

我们似乎把我们的一些HG配置搞砸了

合并时,我们会看到以下几个条目:

warning: detected divergent renames of core/src/main/java/x/y/z/MyFile.java to:
 core/src/main/java/x/y/z/NewFileA.java
 core/src/main/java/x/y/z/NewFileB.java

MyFile不应链接到“新文件”。你怎么能断开这个链接

事后不能断开链接。链接是在您(很可能)创建时创建的

在一个分支中,有人这样做了

$ hg rename MyFile.java NewFileB.java
另一方面。合并这两个分支时,您将得到
NewFileA.java
NewFileB.java
。有些人可能认为这是冲突,因此是警告。

也有可能是你干的

$ hg copy MyFile.java NewFileA.java
$ hg copy MyFile.java NewFileB.java
而且是故意这样做的。在这种情况下,没有冲突,不需要警告。Mercurial内部无法区分这两种情况,因为
hg rename X Y
hg copy X Y相同;hg删除X
。有关
hg copy
真正做什么的信息,请参阅


所以,别担心,没有什么事情是一团糟的。合并后,您将不会再次看到警告-仅当您与仍然存在
MyFile.java
的分支合并时,警告才会出现。

您不能在合并后断开链接。链接是在您(很可能)创建时创建的

在一个分支中,有人这样做了

$ hg rename MyFile.java NewFileB.java
另一方面。合并这两个分支时,您将得到
NewFileA.java
NewFileB.java
。有些人可能认为这是冲突,因此是警告。

也有可能是你干的

$ hg copy MyFile.java NewFileA.java
$ hg copy MyFile.java NewFileB.java
而且是故意这样做的。在这种情况下,没有冲突,不需要警告。Mercurial内部无法区分这两种情况,因为
hg rename X Y
hg copy X Y相同;hg删除X
。有关
hg copy
真正做什么的信息,请参阅


所以,别担心,没有什么事情是一团糟的。合并后,您将不会再次看到警告-仅当您与
MyFile.java
仍然存在的分支合并时,警告才会出现。

除非有我不知道的负面影响,否则您可以通过删除或忘记无意复制的目标文件来断开链接,并提交该文件,然后重新添加文件(具有相同的内容)。对原始副本源所做的更改不会合并到重新添加的文件中


在Mercurial 3.7.2中,我能够复制后续合并(不仅仅是第一次合并),将更改应用于复制目标,这与文档相反,尽管我没有进一步深入研究。这里我指的是提交副本的分支的合并,而不是相反的方向。

除非有我不知道的负面影响,否则您可以通过删除或忘记无意中复制的目标文件,提交该文件,然后重新添加该文件(具有相同的内容)来断开链接。对原始副本源所做的更改不会合并到重新添加的文件中


在Mercurial 3.7.2中,我能够复制后续合并(不仅仅是第一次合并),将更改应用于复制目标,这与文档相反,尽管我没有进一步深入研究。这里我指的是提交副本的分支的合并,而不是相反的方向。

是的,我认为我们确实无意中进行了hg复制-我认为IntelliJ(启用了hg集成)是在我“复制”文件时这样做的。如果我们更改MyFile,然后进行合并,HG现在会尝试将更改合并到“新文件”吗?我本以为有办法打破这种联系。。哦,好吧。只有在第一次合并中,您仍然拥有
MyFile
的分支和您拥有副本的分支,Mercurial才会尝试将
MyFile
更改复制到两个副本中。在那之后,你不会看到任何特别的东西“神奇链接”被破坏了。是的,我想我们是无意中做了hg复制的——我想IntelliJ(启用了hg集成)是在我“复制”一个文件时做的。如果我们更改MyFile,然后进行合并,HG现在会尝试将更改合并到“新文件”吗?我本以为有办法打破这种联系。。哦,好吧。只有在第一次合并中,您仍然拥有
MyFile
的分支和您拥有副本的分支,Mercurial才会尝试将
MyFile
更改复制到两个副本中。在那之后,你将看不到任何特别的东西“神奇的链接”被打破了。