簡體   English   中英

svn-恢復到另一個分支上的舊提交

[英]svn - Revert to an old commit on a different branch

我正在使用svn的項目中。 我在目錄中簽出了它的最新版本(使用svn checkout http://url /path/to/dest )。 我做了一些修改,所以我svn add修改后的文件,然后svn commit更改。

不幸的是,我在錯誤的分支上進行了更改。 現在,我正在嘗試使用svn update -r 1234將svn更新到另一個分支中的特定提交,並且得到以下錯誤消息:

svn:E160005:目標路徑'/ dev / branches / project'不存在

我使用svn switch http://url切換到正確的分支,但仍然收到相同的錯誤消息。 如何正確還原到該提交?

我認為您的方法存在多個問題。

首先,您在Subversion中提交的更改是不可逆的¹,因此,您應該做的第一件事實際上是“撤消”錯誤提交的影響

由於可以將任何提交視為指定了更改內容和更改方式的“補丁”(與提交之前的存儲庫狀態相比),要撤消由提交引起的更改,您可以記錄另一個與更改完全相反的提交。原始提交。

這是通過合並承諾,但你告訴Subversion在申請及其變化進行反向看到獲取更多信息。

其次,您希望錯誤的提交出現在另一個分支上。 這被稱為“櫻桃采摘”:您希望將其他地方記錄的特定更改帶到另一個分支。

是完成的過程。


¹是來自客戶。 可以使用專用工具在物理存儲庫上執行特殊手術。 但是我認為這不是我們在這里想要做的。

暫無
暫無

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

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