2013-10-13 46 views
1

我正在致力於Eclipse中的Java項目,我使用SVN在存儲庫中提交它的各種版本。但是我注意到,當我刪除一個類然後提交項目時,舊類仍然包含在項目的最新承諾版本中。有沒有辦法阻止SVN維護實際刪除的類?如何刪除使用SVN時不再使用的類?

更新:當我重命名一個類,然後嘗試提交新版本的項目時,出現同樣的問題。它將兩個類都保存在版本庫中。我怎樣才能防止它存儲舊的?我非常感謝任何幫助,因爲我不希望在任何情況下將它存儲在舊的課程中。

回答

0

您還需要刪除SVN類爲好,這樣的:

$ svn rm path/to/class.java 

您還可以刪除使用Eclipse的文件,假設你已經安裝了svn插件。確保在提交變更集時選擇文件,否則刪除將不會發送到服務器。

更新:回答更新的問題

$ svn mv path/to/OldClass.java path/to/NewClass.java 

或者,如Martin mentioned,請確保您已經在Eclipse中的顛覆插件配置正確,那麼它也做svn rmsvn mv命令你。

+0

感謝您的第一次幫助。請參閱我的更新。 – arjacsoh

0

如果您像SubClipse一樣使用Subversion for Eclipse,那麼在Eclipse中刪除文件將自動安排文件在下次提交時刪除。

如果您在Eclipse之外使用Subversion客戶端,則必須使用該客戶端刪除文件,然後在文件從工作副本中刪除後在Eclipse中刷新項目。

+0

感謝您的第一次幫助。請參閱我的更新。 – arjacsoh

+0

@arjacsoh目前還不清楚你是否使用插件或Subversion命令行。一個插件應該爲你處理所有的Subversion操作。在重命名的情況下,舊名稱和新名稱通常會在提交中顯示出來,但請確保您檢查了Subversion對該文件所做的操作。命令行將在文件名前面顯示一個大寫字母 - 插件使用某種圖標來顯示更改內容。 – Martin

0

SVN需要知道SVN控制的所有文件和文件夾(即放在版本控制下)的任何更改。檢測文件更改很容易,但檢測重命名和刪除操作並不容易。如果你只是刪除一個文件(使用你的操作系統工具),SVN會警告你一個丟失的文件。

對於這些操作,您必須使用相應的SVN commands。 SVN是最好的學習,當所有這些SVN命令手動(首先)。

使用SVN客戶端使您更容易。例如,如果您使用TortoiseSVN,您可以右鍵單擊文件並選擇「SVN刪除」來執行這兩個操作,刪除該文件並將其傳送給SVN。相同的重命名。

在Eclipse中使用SVN插件(例如,Subclipse或Subversive)也可以做到這一點。如果您使用Eclipse刪除或重命名文件,該插件也將執行操作並將其傳遞給SVN。

請記住:當刪除或重命名文件(和/或文件夾) - 當然使用SVN命令 - 您應該始終在SVN提交之前進行SVN更新。否則,您可能會收到有關修訂問題的錯誤。