2011-10-12 15 views
1

我接管了一個使用Subversion的Web應用程序。當代碼被釋放時,在存儲庫中創建一個標籤,然後在服務器上使用'svn update'命令將發佈代碼升級到最新版本。如何從服務器中刪除svn標記的版本並將其保存在存儲庫中?

這個過程很好,但它已經進行了2年多了,現在網絡服務器上有超過100個標籤,加起來超過10個演出。他們所在的分區已滿,我想刪除舊的標籤並只保留當前的標籤版本。

從我所瞭解的標籤包含版本信息,並相互依賴。我試過從服務器上刪除舊的標籤,但只要我運行'svn',它們就會返回。我想做什麼?我只能在服務器上擁有最新的標籤,還是需要開始考慮新的部署過程?

+0

不能運行'上的存儲庫svn的up',所以我想你說的是你有一個內部的所有標籤的工作副本? –

+0

是的,我猜這是怎麼實現的。當談到svn時,我很喜歡noob。我會堅持檢查最新的標籤,並切換到它。 – serialworm

回答

1

爲什麼你將所有標籤簽出? 與svn co http://repo/tags/v1.0 結帳當前標籤當你想更新你切換到新標籤的Web服務器,svn switch http://repo/tags/v1.1

+0

這就是我的答案,如果他用「是」回答我的問題:-)。基本做法:不要檢出高於主幹,分支/分支A,標籤/ tagA –

0

您可以使用svn rm http://repo/path/to/tag刪除標籤。這將它們從HEAD中移除,但顯然它們仍處於歷史中,並且可以在需要時進行檢索。之後,您的svn up將不再檢索舊標籤,並會從其工作副本中刪除已刪除的標籤。

另一種可能的解決方案是有一個「移動標籤」,如tags/CURRENT,它總是指向最新的標籤。您的發佈過程將執行svn cp new-prod-tag http://repo/tags/CURRENT。那麼你的服務器只需要檢出並更新CURRENT標籤,而不是所有的標籤。 免責聲明:這是不是與SVN鼓勵的做法,但我想把它作爲一個潛在的解決方案扔在那裏。

相關問題