svn 回退 更新 取消至某個版本命令詳解

2021-09-24 19:30:34 字數 3507 閱讀 2074

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,***xx」 [檔案或目錄]。這時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 版本號

'' 在指定時間以後的版本

'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

mac下使用svn通過終端回退版本到某個版本號

要回退 回滾版本,有很多版本,這裡先介紹用update操作的方法。首先通過 ls 操作可以檢視當前目錄的檔案。通過 cd 檔名 操作可以進入到某個資料夾,資料夾輸入一部分後,如果是唯一的,則可以按tab鍵來補全資料夾名。進入到使用svn進行版本管理的工程資料夾後。使用以下語句可以檢視當前本地檔案的版...

centos7 svn自動更新至web目錄

本文記錄通過svn的鉤子指令碼實現本地提交svn後,自動同步 檔案到伺服器的 目錄下,而不必手動同步。假如現在有 svn版本庫中的乙個專案 svn rootwww svn co svn username admin password 123456 複製 這時,目錄已成為svn的工作副本,接下來利用s...

歐盟玩具標準EN71 3更新至2019版

歐盟玩具標準en71 3更新至2019版 歐盟於2018年8月10日發布2018 c 282 02,更新了玩具安全指令2009 48 ec的相關協調標準。今年4月歐洲標準化委員會 cen 發布了玩具安全標準en 71第3部分 特定元素的遷移的2019版。本次更新的標準en71 3 2019將於今年1...