[英]Merging changes from a branch into the trunk
我正在使用SVN進行版本控制,並在Eclipse中使用了一個項目。 但是,我在Windows 10中使用TortoiseSVN作為客戶端。
因此,我從Windows資源管理器提交和更新,沒有問題。
於是我開始測試。
我在存儲庫中有一個文件夾/trunk
,在存儲庫中也有一個文件夾/branches/1.77
。 (我使用Tortoise SVN-> Branch / Tags創建的)沒有問題,我沒有進行切換。)
首先,我將工作副本指向主干文件夾,創建文件versionado.trunk.txt
並提交更改。
此時一切正常。
我切換到/braches/1.77
。 在我的工作副本中,我看到SVN刪除了versionado.trunk.txt
。
然后在工作副本中創建另一個文件versionado.branch.txt
並提交。 很好,我已對versionado.branch.txt
進行了版本控制。
在我的工作副本中,我沒有versionado.trunk.txt
,因為我在分支上工作。
當我再次切換到中繼時,由於我正在中繼中工作,因此將從工作副本中刪除versionado.branch.txt
,並且SVN再次創建了versionado.trunk.txt
。
我的問題是,我必須在工作副本中的哪個位置“從”分支(x.xx)合並到主干?
我的策略是在主干中工作(每日開發),我已經在分支中部署了版本,最終我必須修復一些錯誤,這些錯誤應該合並到主干中!
我嘗試從分支合並到主干(我的工作副本指向主干),但是SVN告訴我存在樹沖突,因為versionado.trunk.txt
不存在(從分支到主干的交換機上刪除了它) 。
知道我在做什么錯嗎?
我不是SVN專家,但以下方法可能會有所幫助:
當您將更改從分支合並到主干時,通常不會直接編輯存儲庫。 相反,您正在修改主干的工作副本,然后提交更改。 使用merge
命令進行merge
非常有用,因為SVN具有一個很好的SVN屬性,稱為svn:mergeinfo
,它保留了合並項中的先前歷史記錄。 因此,以下工作流程應正常工作:
switch
到中繼的工作副本,並確保它已update
d。 merge
分支中的修訂merge
到中繼的工作副本中。 commit
到主干。 我不確定樹沖突,因為您沒有足夠詳細地描述目錄結構,而且我仍在學習SVN。 如果您用分支和主干結構的MCVE示例提出了一個新問題,我相信您會得到更多幫助。
更進一步,我發現免費書籍“ 帶Subversion的版本控制 ”中的“保持分支同步”部分有助於解釋您所需的基本分支工作流程。 盡管它描述的是命令行客戶端,而不是Tortoise SVN,但概念是相同的。
Tortoise SVN的文檔還提供了關於該主題的“合並”部分,盡管他們建議您從SVN本書中閱讀有關分支和合並的整個章節,如果您想繼續提高SVN的技能,我也同意。 即使您不使用命令行客戶端,它也對SVN的進程非常有啟發性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.