日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

svn merge 回滚

發布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svn merge 回滚 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聊一聊 svn merge 命令。

svn 是啥就不用介紹了吧,誰用誰知道。有了 svn,開發者只要把代碼提交上去,無論山崩地裂、電腦進水、硬盤格式化,哪怕換了一臺電腦,都能隨時把代碼找回來。不過從自己工作中看到的現象來說,可能還有很多人并不了解 svn 真正的便捷之處。這里我們就聊一聊代碼合并、回滾必備的利器——svn merge 命令。

一說到回滾,可能很多人立馬先想到了 svn revert。其實非也,svn revert 只能把未提交的本地修改撤銷,對于已經提交的代碼就無能為力了。要把已經提交上去的代碼回滾掉,非 svn merge 莫屬。

PS:我們這里以 Linux shell 下的 svn 命令行工具為例進行介紹。Windows 圖形界面版本其實原理一樣,只是把命令轉移到 GUI 里面去了。


?

在 shell 里輸入 svn help merge ,可以看到大片的幫助文檔,新手看了真是無從下手。不急,且看為首的幾行:

merge: Apply the differences between two sources to a working copy path.
usage: 1. merge sourceURL1[@N] sourceURL2[@M] [WCPATH]2. merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]3. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [WCPATH]

其實只要看明白這 4 行,svn merge 命令就搞定了。

svn merge 能干啥?

我們都知道,svn 上面保存了一份代碼的所有歷史版本。隨著開發過程中不短提交新的代碼,版本只會越來越多,而已存在的版本又無法刪除。所以,如果某個版本的代碼提交錯了、不想要了怎么辦?

這種情況,其實只要把最后一次提交里,新增的代碼刪掉、刪掉的代碼加回來、修改的代碼改回去,然后 svn ci 一下就好。雖然這樣好像又多了一個版本,但其實代碼是回到前面一個版本的狀態了。

而要把新增的代碼刪掉、刪掉的代碼加回來、修改的代碼改回去,手工修改無疑太笨,也太容易出錯。這就輪到 svn merge 命令出場了。

merge: Apply the differences between two sources to a working copy path.

help 文檔告訴我們,merge 就是把兩套代碼之間的 diff 生效到本地的一個路徑上。

比如上面的例子,我們假設有一套代碼維護在 svn 上,一開始的版本號是 r1,后來提交了一次版本就是 r2,然后發現 r2 寫錯了、想撤銷這次修改。這次修改做的變化就是 r1 -> r2 兩個版本的 diff;那么想撤銷修改,只要把 r2 -> r1 的 diff 再提交上去,雖然生成了新的版本號 r3,但其實 r3 里的代碼跟 r1 是完全一樣的。

svn merge 怎么用?

說了這么多虛的,那怎么操作呢?我們繼續跟著 help 往下看。

1. 在同一個 URL 上做 merge

3. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [WCPATH]

前面的例子其實是第 3 種用法,我們先看這個。假設 shell 里面當前路徑就對應著 svn 上代碼最上層目錄,要實現上面的例子,可以直接這么寫:

svn merge -r r2:r1 .

注意結尾有個“.”,表示將 diff 生效到當前路徑。然后提交代碼即可。

svn ci -m "rollback r2 -> r1"

2. 在不同的 URL 上做 merge

前面的例子要求遠程代碼 URL 跟本地代碼對應的 URL 必須一致,即都在 trunk 上,或者都在同一個 branch 或者 tag 上。一般情況需要回滾代碼、撤銷某次修改,上面的命令足矣。而如果涉及到多個 branch 合并到 trunk 之類的問題,還需要繼續往下看 :)

?


To be continued ...

(有時間再接著寫)

?

轉載于:https://www.cnblogs.com/jiangzhaowei/p/5671484.html

總結

以上是生活随笔為你收集整理的svn merge 回滚的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。