SVN错误:在合并过程中,“x”与“y”在同一个存储库中不存在。

时间:2021-08-16 21:32:47

I get the error

我得到错误的

svn: 'x' isn't in the same repository as 'y' "

during merge. What's the problem and how can I fix it ?

在合并。问题是什么,我怎么解决?

(I actually know the answer and posting it as soon as I am allowed by the system, so that it's googleable by others. I got my share of trouble finding the answer).

(实际上我知道这个答案,只要我允许,就可以在系统允许的情况下发布它,这样它就可以被其他人使用了。我在寻找答案时遇到了麻烦。

5 个解决方案

#1


73  

The problem lies in the fact the checkout information is different from what you specify in the svn merge command. Typically, it can be either:

问题在于,checkout信息与您在svn merge命令中指定的信息不同。通常,它可以是:

  • the hostname is different when you did the checkout. You did the checkout as from svn.example.com but now you are merging by referring to an host alias, like svn-alias.example.com. note that even the case is important. You can get this error if you do svn merge from SVN.EXAMPLE.COM. More on this here and here.
  • 当您进行结帐时,主机名是不同的。您从svn.example.com进行了签出,但是现在您通过引用主机别名(如svn-alias.example.com)进行合并。请注意,即使是这个案例也很重要。如果你从svn . example.com进行svn合并,就会得到这个错误。这里和这里更多。
  • the protocol is different from what you used for the checkout. E.g. http://svn.example.com versus https://svn.example.com Make sure you use the same protocol.
  • 该协议与您在签出时使用的协议不同。例如:http://svn.example.com与https://svn.example.com,请确保使用相同的协议。
  • you are specifying a username at svn merge in the form user@svn.example.com. Try to remove the user@ specification (the user is passed anyway). svn considers the hostname, and thus the repo, different if you specify the user, even if the user is technically the same.
  • 您在表单user@svn.example.com中指定了svn中的用户名。尝试删除用户@规范(无论如何,用户已经通过了)。svn考虑主机名,因此,如果指定用户,则不同,即使用户在技术上是相同的。

#2


7  

this is very much case sensitive. Sometimes if you right click in any branch and click merge https://mysite.com/svn/MYREPO/trunk as merge from . But my branch name has small letters for myrepo https://mysite.com/svn/myrepo/branches/mybranch. this cause me error surely check the case sensitivenes.. If its not matching type in the wizard correctly

这是非常大小写敏感的。有时,如果您右键单击任何分支,然后单击merge https://mysite.com/svn/MYREPO/trunk作为合并。但是,我的分支名称有小字母用于myrepo https://mysite.com/svn/myrepo/branches/mybranch。这引起我的错误肯定是检查了案件的敏感性。如果向导中没有正确的匹配类型。

#3


1  

The merge is case sensitive. Ensure when you do the initial checkout ensure that the name and case are the same. For example, if you checkout to "http:///ABC" ensure you enter "http:///ABC", not "http:///abc" in the "URL to merge from".

合并是区分大小写的。确保在进行初始检查时确保名称和实例是相同的。例如,如果签出“http:///ABC”,确保输入“http:///ABC”,而不是“URL中的http:///ABC”。

#4


0  

You can also get this error if both repositories, despite being separate, have the same UUID. Easily resolved by using the 'svnadmin setuuid' command on one of them.

如果两个储存库都是独立的,那么您也可以得到相同的UUID。可以通过使用“svnadmin setuuid”命令来轻松解决其中一个问题。

#5


-2  

I just have the same problem and I just cleared the port input and it works

我只是有同样的问题,我刚刚清除了端口输入,它起作用了。

#1


73  

The problem lies in the fact the checkout information is different from what you specify in the svn merge command. Typically, it can be either:

问题在于,checkout信息与您在svn merge命令中指定的信息不同。通常,它可以是:

  • the hostname is different when you did the checkout. You did the checkout as from svn.example.com but now you are merging by referring to an host alias, like svn-alias.example.com. note that even the case is important. You can get this error if you do svn merge from SVN.EXAMPLE.COM. More on this here and here.
  • 当您进行结帐时,主机名是不同的。您从svn.example.com进行了签出,但是现在您通过引用主机别名(如svn-alias.example.com)进行合并。请注意,即使是这个案例也很重要。如果你从svn . example.com进行svn合并,就会得到这个错误。这里和这里更多。
  • the protocol is different from what you used for the checkout. E.g. http://svn.example.com versus https://svn.example.com Make sure you use the same protocol.
  • 该协议与您在签出时使用的协议不同。例如:http://svn.example.com与https://svn.example.com,请确保使用相同的协议。
  • you are specifying a username at svn merge in the form user@svn.example.com. Try to remove the user@ specification (the user is passed anyway). svn considers the hostname, and thus the repo, different if you specify the user, even if the user is technically the same.
  • 您在表单user@svn.example.com中指定了svn中的用户名。尝试删除用户@规范(无论如何,用户已经通过了)。svn考虑主机名,因此,如果指定用户,则不同,即使用户在技术上是相同的。

#2


7  

this is very much case sensitive. Sometimes if you right click in any branch and click merge https://mysite.com/svn/MYREPO/trunk as merge from . But my branch name has small letters for myrepo https://mysite.com/svn/myrepo/branches/mybranch. this cause me error surely check the case sensitivenes.. If its not matching type in the wizard correctly

这是非常大小写敏感的。有时,如果您右键单击任何分支,然后单击merge https://mysite.com/svn/MYREPO/trunk作为合并。但是,我的分支名称有小字母用于myrepo https://mysite.com/svn/myrepo/branches/mybranch。这引起我的错误肯定是检查了案件的敏感性。如果向导中没有正确的匹配类型。

#3


1  

The merge is case sensitive. Ensure when you do the initial checkout ensure that the name and case are the same. For example, if you checkout to "http:///ABC" ensure you enter "http:///ABC", not "http:///abc" in the "URL to merge from".

合并是区分大小写的。确保在进行初始检查时确保名称和实例是相同的。例如,如果签出“http:///ABC”,确保输入“http:///ABC”,而不是“URL中的http:///ABC”。

#4


0  

You can also get this error if both repositories, despite being separate, have the same UUID. Easily resolved by using the 'svnadmin setuuid' command on one of them.

如果两个储存库都是独立的,那么您也可以得到相同的UUID。可以通过使用“svnadmin setuuid”命令来轻松解决其中一个问题。

#5


-2  

I just have the same problem and I just cleared the port input and it works

我只是有同样的问题,我刚刚清除了端口输入,它起作用了。