2011-04-07 17 views

回答

24

標籤在固定的時間點作爲源代碼的副本存在 - 無論您對Trunk或任何分支文件夾所做的任何更改如何,您都將始終能夠返回代碼標籤副本已創建。

如果您正在對帶標籤的副本進行提交,它們將不再代表創建副本時的源代碼 - 因此,請勿使用它們。你的客戶應該對幹線或分支機構做出承諾。

4

正在使用該項目的用戶可能正在使用您的代碼的某個標記版本。他們知道他們的代碼和你指定的標籤一起工作,並且會基於這個假設而愉快地發佈。如果您更改標籤,那麼用戶的代碼可能會中斷。標籤的字面意思是 - 這是一個穩定的里程碑,其他用戶可以考慮設置石頭。

此外,如果項目中有多個開發人員,他們將在trunk上工作。當他們更新時,他們不會得到標籤上的變化,這將導致巨大的合併問題。

2

標籤應該指向一些現有的修訂版本。你基本上給這個修訂命名,即標籤。 在SVN中,tag只是/ tags目錄中的一個副本,所以提交是可能的,但這只是一個實現細節。沒有任何東西阻止你提交,但這很不尋常,而且使用標籤的人可能會對這個標籤代表什麼樣的內容感到困惑......標籤創建或新變更時的原始修訂。最後,這是關於溝通你的意圖的。

在其他系統中,標籤只是指向特定修訂版的指針。您可以從標記版本創建新分支,但標記仍然指向原始版本。

2

標記版本時,很難預測您是否稍後需要返回到該版本並進行更改。有時候,你希望你製作了一個分支,而不是一個標籤,但是大多數時候分支是過分的。

也許你可以說服你的客戶採取另一種方法,在提交標籤和製作分支(很多人擔心)之間進行。

首先做標記,的本地副本,然後進行必要的修改(本地),並提交結果作爲一個新的標籤。如果新版本需要多次提交,您可以爲新標籤提供草稿名稱 - 只要確保沒有人錯誤地將此標籤用於完成版本,並且在所有提交完成後,將新標籤重命名爲最終名稱。 (我相信SVN允許重命名標籤,雖然我從來沒有這樣做過。)

-1

好吧..如果你有一位出色的合作者,他們會讓代碼嚴重臃腫,充滿臨時文件等等,這是絕對不必要的?!我認爲刪除垃圾並提交回標籤是很好的..只要有評論(評論會有時間戳,我假設任何對標籤的更改也會有一個時間戳,所以很容易找到當時的評論)。當然,如果你是一個大公司,或者是一個專業的,結構嚴密的,紅色的(我們遠不及此),那麼這是一個不同的故事。

1

舊的職位,但其他可能仍然讀它,我將添加我的兩分錢:

以前的答案都依賴於常識你說客戶沒有響應。試試這個故事吧: 「標籤就像在婚禮上拍一張家庭照片一樣,你不會拿出永久性的標記來給照片添加阿姨麗莎,是嗎?如果你想繪畫,用一張紙(=分支)「

作爲一個便箋,知道客戶爲什麼要提交標籤會很有趣。我發現,在瞭解對方試圖達到的目標時,爭辯要容易得多,以及背後的需求。

相關問題