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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

svn 回退/更新/取消至某个版本命令详解

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svn 回退/更新/取消至某个版本命令详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 取消Add/Delete

取消文件

svn revert 文件名

取消目錄

svn revert --depth=infinity 目錄名

2. 回退版本

方法1: 用svn merge

1) 先 svn up,保證更新到最新的版本,如20;

2) 然后用 svn log ,查看歷史修改,找出要恢復的版本,如10 。如果想要更詳細的了解情況,可以使用svn diff -r 10:20 [文件或目錄];

3) 回滾到版本號10:svn merge -r 20:10 [文件或目錄],注意版本號之間的順序,這個叫反向合并;

4) 查看當前工作版本中的文件,如test.cpp和版本號10中文件的差別:svn diff -r 10 test.cpp, 有差別則手動改之;

5) 若無差別,則提交:svn ci -m“back to r 10,xxxxx” [文件或目錄]。這時svn庫中會生成新的版本,如21。

方法2: 用svn up

前2步如方法1,然后直接 svn up -r 10。當前的工作版本就是版本10了。但是注意,這時svn庫中并不會生成新的版本,下次svn up之后,還是會回到當前的版本。

========================

改動已經被提交(commit)。

用svn merge命令來進行回滾。

回滾的操作過程如下:

1、保證我們拿到的是最新代碼:

svn update

假設最新版本號是28。

2、然后找出要回滾的確切版本號:

svn log

假設根據svn log日志查出要回滾的版本號是25,此處的something可以是文件、目錄或整個項目

如果想要更詳細的了解情況,可以使用svn diff -r 28:25 ""

3、回滾到版本號25:

svn merge -r 28:25 ""

為了保險起見,再次確認回滾的結果:

svn diff ""

發現正確無誤,提交。

4、提交回滾:

svn commit -m "Revert revision from r28 to r25,because of ..."

提交后版本變成了29。

將以上操作總結為三條如下:

1. svn update,svn log,找到最新版本(latest revision)

2. 找到自己想要回滾的版本號(rollbak revision)

3. 用svn merge來回滾: svn merge -r : something

更新至某個版本

svn update -r 版本號

svn help update

update (up): 將版本庫的修改合并到工作副本中。

用法: update [PATH...]

如果沒有指定版本,則將工作副本更新到 HEAD 版本。否則同步到 -r 選項所

指定的版本。

每更新一項就輸出一行信息,使用首字符來報告執行的動作。這些字符的含義是:

A 已添加

D 已刪除

U 已更新

C 合并沖突

G 合并成功

E 已存在

R 已替換

第一列字符報告項目本身。

第二列表示報告項目屬性。

第三列中的字符“B”表示此文件上的鎖被終止或竊取。

第四列中的字符“C”表示樹沖突,同時“C”出現在第一列或第二列,分別表示

內容沖突或屬性沖突。

如果使用了 “--force” 選項,在工作副本中未版本控制的障礙路徑,不會自動

導致簽出失敗。 如果障礙路徑與版本庫中的對應路徑類型相同(文件或目錄),它

將成為受版本控制的路徑,但是內容不改變。它意味著障礙路徑的子孫,也可能

是障礙路徑,同樣會受版本控制。對于障礙路徑中的文件,如果與版本庫內的

不同,將視為工作副本發生本地修改。版本庫中的所有屬性都應用于障礙路徑。

用第一列字符 “E” 來報告障礙路徑。

如果工作副本中并沒有指定的更新目標,但是有其父目錄,那么就在指定路徑上

將目標檢出到其父目錄中。如果使用了選項 --parents,就會創建目標的所有不

存在的父目錄 (使用選項 --depth=empty)。

使用“--set-depth”選項設置此操作目標的工作副本之新深度。

有效選項:

-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范圍)

版本參數可以是如下之一:

NUMBER 版本號

'{' DATE '}' 在指定時間以后的版本

'HEAD' 版本庫中的最新版本

'BASE' 工作副本的基線版本

'COMMITTED' 最后提交或基線之前

'PREV' COMMITTED的前一版本

-N [--non-recursive] : 過時;嘗試 --depth=files 或 --depth=immediates

--depth ARG : 限制操作深度是 ARG ('empty', 'files',

'immediates', 或 'infinity')

--set-depth ARG : 設置工作副本的新深度為 ARG('exclude',

'empty', 'files', 'immediates', 或 'infinity')

-q [--quiet] : 不打印信息,或只打印概要信息

--diff3-cmd ARG : 使用 ARG 作為合并命令

--force : 強制操作運行

--ignore-externals : 忽略外部項目

--changelist [--cl] ARG : 只能對修改列表 ARG 的成員操作

--editor-cmd ARG : 使用 ARG 作為外部編輯器

--accept ARG : 指定自動解決沖突動作

('postpone', 'working', 'base', 'mine-conflict',

'theirs-conflict', 'mine-full', 'theirs-full',

'edit', 'launch')

(shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')

--parents : 創建中間目錄

全局選項:

--username ARG : 指定用戶名稱 ARG

--password ARG : 指定密碼 ARG

--no-auth-cache : 不要緩存用戶認證令牌

--non-interactive : 不要交互提示

--trust-server-cert : 不提示的接受未知的證書頒發機構發行的 SSL 服務器證書(只用于選項 “--non-interactive”)

--config-dir ARG : 從目錄 ARG 讀取用戶配置文件

--config-option ARG : 以下屬格式設置用戶配置選項:

FILE:SECTION:OPTION=[VALUE]

例如:

servers:global:http-library=serf

總結

以上是生活随笔為你收集整理的svn 回退/更新/取消至某个版本命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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