SVN:无法提交'x'和'y',因为它们引用相同的URL?

时间:2011-05-27 20:34:10

标签: eclipse svn commit

我正在尝试对我的项目进行提交,并遇到以下错误。密切关注路径:

Commit failed (details follow):
Cannot commit both
'C:\Development\Project\branches\nextver\project\bin\com\companyname\blah\Foo.java'
and
'C:\Development\Project\branches\nextver\project\src\com\companyname\blah\Foo.java'
as they refer to the same URL

世界如何发生这种情况?我从未在Eclipse的bin路径中获取源文件!我该怎么办才能修复它?请告诉我,有一些比再次检查并更换所有文件更好的东西。我只有191个Java文件,更不用说资源和Eclipse文件了。

4 个答案:

答案 0 :(得分:6)

我知道你发布这个帖子已经有一年多了,但这可能有助于其他人。我刚刚经历了同样的问题。我最终将其追溯到Eclipse上的项目设置。在我的情况下,发生的事情是eclipse中的构建过程是“构建”/将源文件夹中的所有文件复制到构建文件夹。这导致源中的.svn目录被复制到构建文件夹,这就是Subversion混淆的方式。如果您通过RepoBrowser检查路径(我在Windows环境中使用Torto),路径指向正确的目录(源和构建),但如果您从本地计算机上的目录中运行“svn info”,您会发现source和build目录指向相同的URL(因此消息)。

一旦我意识到问题出现在Eclipse中并且不是特定于Subversion,就很容易搜索解决方案。您需要在Source选项卡的Java Build Path中的源排除项中添加“** / .svn /”:

项目 - >属性 - > Java构建路径。

答案 1 :(得分:1)

试试这个:

如果您看到C:\Development\Project\branches\nextver\project\bin\,请转到.svn并删除src。然后尝试提交。

我认为.svn中包含bin的某些内容已被复制到{{1}},这使得它们看起来都像来自服务器中的同一个网址。当然你不希望这样。您可能想要更正您的构建设置。

答案 2 :(得分:1)

解决方法是从我的本地副本中删除并忽略我的bin目录。再次。 Tortoise SVN似乎忘记了我以前做过的事情,并没有注意到bin dirs已经悄悄进入,导致了这个问题。在解决了几个其他问题之后,我把它扔进了我的路径(冲突中的源树等),我设法让它提交。

我首先尝试从bin目录中删除.svn文件夹,但所有这一切都是因为它抱怨bin目录不再受源代码控制而停止。

答案 3 :(得分:0)

在我的情况下,我有一个在两个项目之间共享的配置文件,但我在两个项目中都更新了文件(具有相同的更改)。

SVN无法提交,因为它认为有两组不同的更改要提交给同一个文件。

所以我还原了其中一个副本然后我就可以了。