簡體   English   中英

將更改從分支合並到主干

[英]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 ,它保留了合並項中的先前歷史記錄。 因此,以下工作流程應正常工作:

  1. switch到中繼的工作副本,並確保它已update d。
  2. merge分支中的修訂merge到中繼的工作副本中。
  3. 將更改從分支commit到主干。

我不確定樹沖突,因為您沒有足夠詳細地描述目錄結構,而且我仍在學習SVN。 如果您用分支和主干結構的MCVE示例提出了一個新問題,我相信您會得到更多幫助。


更進一步,我發現免費書籍 帶Subversion的版本控制 中的“保持分支同步”部分有助於解釋您所需的基本分支工作流程。 盡管它描述的是命令行客戶端,而不是Tortoise SVN,但概念是相同的。

Tortoise SVN的文檔還提供了關於該主題的“合並”部分,盡管他們建議您從SVN本書中閱讀有關分支和合並的整個章節,如果您想繼續提高SVN的技能,我也同意。 即使您不使用命令行客戶端,它也對SVN的進程非常有啟發性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM