2011-05-27 31 views
9

我想對我的項目做一個提交,並且遇到以下錯誤。密切關注路徑:SVN:不能提交'x'和'y',因爲它們引用同一個URL?

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

Eclipse可能不會傳達正確的問題。你可以使用命令行在你的項目的根目錄中輸入'svn status'並編輯問題,以便你可以粘貼結果? – 2011-05-27 20:39:02

+0

我沒有得到任何錯誤,只是一個很長的列表添加,刪除和修改文件。沒什麼有趣的。請參閱下面的答案,瞭解最終的強力解決方案。 – jasonh 2011-05-31 18:24:16

回答

1

解決方案是從我的本地副本中刪除並忽略我的箱子目錄。再次。龜SVN似乎忘記了我以前做過這件事,但我沒有注意到垃圾箱已經悄悄進入,導致了這個問題。在解決了其他幾個問題後,我將它放在了我的路徑中(源代碼樹在衝突等),我設法讓它提交。

我第一次嘗試從bin dirs中刪除.svn文件夾,但所有這些都導致它抱怨bin目錄不再處於源代碼管理和停止狀態。

+0

Argh,Tortoise SVN和/或svn不會忽略bin文件夾。需要更多研究... – jasonh 2011-06-01 19:44:59

+0

設置屬性'svn:ignore'以包含您的'bin'目錄並確保'bin'目錄不在您的存儲庫中。 – 2013-07-26 12:52:58

1

試試這個:

轉到C:\Development\Project\branches\nextver\project\bin\和刪除.svn如果你看到一個。然後嘗試提交。

我覺得不知何故東西在src包括.svn被複制到bin使他們看起來像他們是從服務器中的相同的網址。當然你不想要那個。您可能需要更正您的構建設置。

+0

我認爲這是可能的。爲了避免將來出現這種情況,請設置您的構建過程以排除'.svn' dirs。 – gaRex 2011-05-28 07:13:14

6

我知道它已經過了一年了,因爲你發佈了這個,但這可能會幫助其他人。我剛剛經歷了同樣的問題。我最終將其追溯到Eclipse上的項目設置。在我的情況下,發生的事情是eclipse中的構建過程是「構建」/將源文件夾中的所有文件複製到構建文件夾。這導致源代碼中的.svn目錄被複制到build文件夾,這就是Subversion混淆的方式。如果您通過RepoBrowser(我在Windows環境中使用Tortoise)檢查路徑,則路徑將指向正確的目錄(源代碼和內部版本),但是如果從本地計算機的目錄中運行「svn info」,則會發現源和構建目錄指向相同的URL(因此是消息)。

一旦我意識到問題出現在Eclipse中,而不是Subversion專用的,那麼搜索解決方案很容易。您需要將「** /。svn /」添加到Source選項卡的Java Build Path中的源排除項:

Project - > Properties - > Java Build Path。

+2

PS。如果你在eclipse中使用Subclipse subversion插件,你將不會遇到這個問題。我在Eclipse之外使用Subversion。 – 2012-02-02 07:02:45

0

在我的情況下,我有兩個項目之間共享的配置文件,但我更新了兩個項目中的文件(具有相同的更改)。

SVN無法提交,因爲它認爲有兩套不同的更改要提交給同一個文件。

所以我恢復了其中一個副本,然後我能夠提交。

相關問題