2009-12-15 46 views
2

當試圖創建工作副本的標記時,我們收到錯誤提交失敗:文件''已經存在。標記工作副本,提交失敗:文件已存在

試圖診斷問題並確定了以下複雜的重新創建方案。

我們有一個用於測試和QA發佈的登臺環境。開發永遠不會在分段環境中完成,並且構建是通過SVN簽出完成的。

完整結帳在分期環境中完成,並經歷QA週期。在開發環境中解決錯誤,然後在臨時環境中更新單個文件。

當發佈準備好在分段環境中進行標記時,tag命令失敗,並且提交失敗:文件已存在。

可以通過在整個目錄上完成SVN更新來解決此問題,但是如果有新代碼不打算加標籤,則這並不理想。

有其他人有經驗或有解決方案嗎?我們完全使用SVN是否錯誤?

我們使用烏龜SVN在我們的倉庫工作,但也有命令行工具

回答

1

您試圖提交(標籤)的混合版。你不可以做這個。

看到這個SO question

+0

這聽起來就像我們正在做的事情 - 謝謝,我會再次檢查並確認,如果這是我們正在處理的問題的確切答案。它也解決了我們最終的流程問題,但這不是CVS的問題(這是我們來自的地方) – Dan 2009-12-15 21:05:31

+0

感謝這個方向! – Dan 2009-12-17 20:27:23

+0

根據[SVN書](http://svnbook.red-bean.com/en/1.1/ch04s06.html#svn-ch-4-sect-6.2),提交混合修訂版沒有問題。 – matthewwithanm 2010-11-04 16:24:24

1

當你做你的臨時服務器退房,你應該分支它變成一個「釋放」分支。將其標記爲RC_version_1

然後,您在該分支上工作以準備好它。錯誤在這個分支中被解決(並且合併回到主幹中,所以你不會有任何漏洞回來,這非常重要)。然後你可以從你的登臺服務器上做一個SVN提交(或者如果它使用這個分支作爲它的工作副本,則實際上是任何機器)。

這就是我們無論如何都這樣做的方式。發佈版本發佈後的未來錯誤修復可以再次發佈到該分支,只需標記每個版本(即標籤末尾的版本號即可派上用場)。我們只有一個發佈分支,我們繼續發佈,所以並沒有發佈候選版本(RC)的版本號。每次我們上傳一個網站時,我們都會使用新的版本號對其進行標記。我們正在努力實現這個功能,儘管這樣做有點白癡。

希望幫助

1

這聽起來像做你正在做什麼是你的「臨時環境」是一個獨立的分支更SVN樣的方式。 QA團隊在該分支上進行日常工作,開發人員在主幹上進行日常工作。隨着開發人員修復需要添加到質量檢查週期的錯誤,他們會將它們合併到質量檢查小組的分支中。

通過這種方式,QA團隊的工作副本與存儲庫保持同步,而不是偏離。他們不需要擔心svn update命令,因爲爲了整合更改,有人必須將其明確地從主幹合併到QA分支。

一旦QA循環完成,您可以從QA分支複製到所需的標籤。順便說一句,我建議你直接在存儲庫上做你的標籤/分支,而不是在工作副本上。這樣,您可以避免在本地文件系統上覆制所有這些文件的開銷。

+0

直接在存儲庫中標記生產分支的一個問題是,您不一定要標記QA驗證的確切內容。開發人員可能已將代碼檢入尚未經過特定建造之夜認證的分支中。 – Dan 2009-12-15 20:52:01

相關問題