2008-10-03 95 views
98

我有一個顛覆項目,我正在開發使用Eclipse。我從Eclipse內部的svn倉庫中進行了原始簽出。一切都很好,幾個星期之後,出於某種未知的原因,Eclipse(特別是:Ganymede中的subclipse)不再認可我的項目是受svn控制。團隊上下文菜單僅顯示基本的「應用補丁」/「共享此項目」菜單選項。在shell中,我仍然可以使用svn命令行工具來更新項目,所以我知道svn憑證仍然有效。在同一份Eclipse中顛覆的其他項目仍然有效。恢復Eclipse顛覆項目連接

我意識到我可以刪除本地副本並再次檢查出來,但我寧願明白出了什麼問題 - 解決問題,而不是掩蓋症狀。 Eclipse在哪裏存儲了哪些項目受版本控制的知識?我查看了.project文件和.settings目錄,但是看不到任何明顯提及的svn本質或類似的東西,即使在仍然正常工作的項目中。

回答

119

如果您正在使用sublipse爲您提供SVN,我建議做以下

團隊 - >共享項目通常足以連接的元數據。

(也就是說,假設.svn文件仍然存在,如果您可以在命令行上工作,它們似乎仍然存在)。

希望這有助於至於爲什麼會發生這種事,我不知道

+8

我有同樣的問題,但這個答案不幫助我。 Eclipse讓我在Subversion中創建一個新項目。無法重新連接項目。 – migu 2009-08-07 06:30:28

+1

確認做這件事的方法。 – pestaa 2010-04-24 07:26:09

+0

很高興聽到它爲你工作 – 2010-05-08 18:11:10

1

不知道你是什麼平臺上,我不知道,如果你的問題是與我相似。然而,我最近(實際上在兩個不同的平臺上!)遇到了Subversive(或者Eclipse本身,不清楚)更新導致連接器不再加載的問題。沒有連接器,Subversive無法連接到項目。但是Eclipse不會將你鎖定在你的項目之外,它只會刪除與SVN相關的功能。

查看Errors視圖,它是Eclipse各種錯誤(類未發現的異常等)的日誌,並查看是否有與Subversive組件相關的任何行。不幸的是,我無法真正推薦解決方案 - 在我的Mac OSX平臺上,重新安裝Subversive核心元素和連接器就足夠了。在我的Linux機器上(可能是由於操作系統升級),我不得不徹底重新安裝Eclipse,因爲我已經累積了太多的東西來充分調查它。

4

附錄:事實證明,當我在公司vpn外啓動Eclipse時,出現了問題,工作區中的項目連接到vpn內的svn存儲庫。幸運的是,將Eclipse svn插件從顛覆轉換到subclipse確實解決了這個問題。

伊恩

0

同樣在我的情況:的.svn迪爾斯在那裏,但我的項目不支持SVN行動。

經過一番搗破後發現顛覆性的插件剛剛在強迫戒菸後消失。

解決方案是(重新)安裝顛覆,現在一切都很好。

乾杯 v

更新:我已經轉向Eclipse來,只是沒有足夠的插件安裝,這就是爲什麼我必須從頭開始安裝它的原因一個新的版本。

2

我有同樣的問題,這個論壇幫助我找到正確的答案。

我之前的項目是使用subclipse配置的。新日蝕有subvesive。

安裝subclipse幫助我找回團隊中的svn選項!

希望它可以幫助別人。

問候

安舒Prateek

20

我發現一個簡單的方法只是重新導入項目

7

只是在做團隊 - >共享項目(每個答案由@保羅惠蘭提供了這個問題)沒有爲我工作。 Share Project嚮導的作用就像項目還沒有在SVN中(儘管我的項目中存在.svn文件夾)。

我最終通過卸載Subversive和JavaHL附加組件(通過幫助|關於Eclipse |安裝詳細信息按鈕|安裝的軟件選項卡|卸載...),然後重新安裝Subversive來解決問題。當重新啓動Eclipse後出現提示時,我選擇安裝SVNKit連接器而不是JavaHL連接器。

做完之後,當我再次嘗試Team - > Share Project ...時,Eclipse正確識別出我的項目已經存在於SVN中,併成功恢復了連接。

3

從eclipse中,我關閉了項目並重新打開,解決了問題。所有通過SVN鏈接都回來了我的工作區中的所有項目。

1

在朱諾發行與顛覆性的,我所做的:

  • 文件/導入帶來了導入彈出。
  • 從那裏選擇一般/現有項目進入工作區。
  • 在下一個窗格中,選擇根目錄。然後它會顯示所有 子目錄。他們都會被默認選中。
  • 取消選擇你不想要的。

然後它將「導入」您現有的目錄,該目錄可以在原地使用,它們已經位於工作區目錄中。

0

這爲我工作: 右點擊 - > TortoiseSVN的 - >設置 - >圖標疊加性質, 選擇殼牌的狀態緩存。點擊確定,刷新頁面。

0

我可以可靠地重現這個問題 - 它通過在包含POM本身但在父目錄(如「trunk」)上運行「Check out as Maven Project ...」檢出某些Maven項目時發生。在這種情況下,Subclipse無需投訴就可以檢出項目,並將其放入帶有佔位符名稱(例如maven.1424425443350)的工作區目錄中。 Inside這個目錄中,它創建一個名爲Maven工件的子目錄。這使Subclipse和Subversion都感到困惑:如我們所見,Subclipse會立即忘記項目受版本控制,並且如果從maven.1424425443350目錄的命令行調用svn status,它會告訴您目錄處於版本控制之下但缺少所有版本控制的文件。

如果這是造成Subsclipse忘記其SVN連接的原因,其他答案中提供的解決方法都不起作用。相反,唯一的解決方案是刪除項目並再次檢出,這次確保在包含POM的目錄而不是某個更高級別的目錄上執行簽出。

更好的整體解決方案是Subclipse拒絕在不包含POM的目錄上運行「Check out as Maven Project ...」,或者爲了更好地處理它試圖通過搜索子目錄爲Maven項目。

0

我在SVN版本庫版本(1.8.x)中同時使用了兩個SVNKit實現(1.7.x和1.8.x)。

因此,團隊 - >共享項目...總是請求提交消息。顯然,SVNKit 1.7.x被使用,與SVN 1.8.x不兼容。

刪除SVNKit 1.7.x後,eclipse使用了唯一可用的正確的SVNKit版本1.8.x,並且一切按預期工作。