簡體   English   中英

SVN分支+切換后為什么會有沖突

[英]Why is there a conflict after a SVN branch + switch

我的工作副本指向了Trunk。 我有一個很大的代碼更改,我還沒有准備好提交到主干,但是我希望在版本控制下進行更改,所以我決定分支(從我的工作副本而不是從Head創建存儲庫副本;然后選擇Switch to Branch )。 在操作結束時,我收到錯誤消息: One or more files are in a conflicted state. 好像很奇怪 我的工作副本如何與從我的工作副本創建的全新分支沖突?

線索:當我檢查特定的樹沖突時,會看到如下消息: The last switch operation tried to delete/move/rename the file "xxx.cs", but the file was deleted, moved or renamed locally以及其他類似的消息。 (在分支之前,我已將許多文件移到新文件夾中,並且也重命名了一些文件)。

我可以安全地將沖突標記為已解決,並“保留本地文件”(在“本地添加文件”的情況下)沖突,而不必擔心丟失歷史記錄嗎?

這是部分答案,因為我無法真正幫助“工作副本如何與通過工作副本創建的全新分支沖突?” 與可用的信息。 我不確定發生了什么,但是您嘗試提交兩個邏輯變更集(一個新分支,甚至可能來自HEAD;加上未提交的工作),但這並不是一個好的開始。 請參閱Subversion最佳做法

要使用未提交的更改干凈地創建主干分支,並且不使用存儲庫瀏覽器,如果工作副本不是最新的主干,則我將首先更新工作副本。 然后svn將主干的干凈且更新的副本復制到我的分支文件夾(我一直檢出該文件夾)中並提交分支。 如果有任何外部設備,我會svn更新。 或者,我將從存儲庫瀏覽器的主干中分支出來,然后將其檢出。

然后,我將刪除(而不是svn delete)分支中除.svn之外的所有內容,將當前工作集復制並粘貼到分支中,修復所有重命名和移動以保留歷史記錄(“修復移動”現在在tsvn提交對話框中可用)以幫助解決此問題),並將更改作為單獨的操作提交。

回答問題“我是否可以安全地將沖突標記為已解決,並且可以“保留本地文件”(在“本地添加文件”的情況下)而不必擔心丟失歷史記錄?” 如果您的所有工作都已落實(請參閱svn 日志 ),那么您的工作就是清理工作副本。 但是,為了安全起見,我將重命名此工作副本並將其放在一側。 然后,我將干凈地簽出分支的新副本,然后在那繼續工作。 由於我們對這里發生的事情還不是100%清楚,因此我強烈建議您選擇安全的方法。

最好現在就嘗試將新分支合並回主干,因為並非不可能,當您將其合並回時,您會感到痛苦。 如果測試合並失敗,則您可能想要再次分支,請確保使用干凈的,未經修改的最新主干副本啟動分支。

暫無
暫無

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

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