subversion: svn reverse merge

当发现Subversion中的某个版本错误时,可以使用svn merge进行反向合并以回滚到前一版本。通过指定从到的版本号,可以撤销特定更改。在合并后,需使用svn status和svn diff确认工作副本状态,并提交最终更改。虽然Subversion设计为不丢失信息,但计划未来的svnadmin obliterate命令可能允许永久删除信息,当前可以使用svndumpfilter作为临时解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

subversion: svn reverse merge

當程式開發到一個段落,卻發現某一個版本不應該被遞交,想要回滾到前一個版本時。

可以使用下面的方式返回:

  1. svn merge -r “to version” : “from version” PATH , 填入從起始點到終點版本要丟棄的版本,。
    svn merge -r 303:302 http://svn.example.com/repos/calc/trunk
  2. svn status 確認文件變動狀態
  3. svn diff 確認文件變動符合預期
  4. svn commit -m "Undoing change committed in r303."

可以將每個版本當作是一個個小改動的群體,並且可以使用-r做切換;

使用svn merge 做單個或範圍的更動集別到你的工作庫裡面,以上面的範例便是將r303的工作複製到當前的工作庫。

回捲操作(rolling back)的改變跟其他使用svn merge的操作相同,所以在改動後必須使用svn status 跟 svn diff 確認目前的工作狀態是跟預期相同,然後在使用svn commit ,將最後的改動重新commit 到新的版本進數據庫。

可以發現改動的過程,並非真實的移除r303的修改,最原本的改動還是存在在紀錄中,這樣就已經滿足大部分的使用情況。

但還是有辦法可以移除,只是並不建議而且過程複雜。 這也符合Subversion是故意被設計不漏掉任何訊息的特性。

There are special cases, however

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值