我正在尝试对我的项目进行提交,并遇到以下错误。密切关注路径:
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文件了。
答案 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无法提交,因为它认为有两组不同的更改要提交给同一个文件。
所以我还原了其中一个副本然后我就可以了。