Subversion

锁定-修改-解锁

复制-修改-合并

 

全面性的修訂版號

不同於許多其它的版本控制系統, Subversion 的修訂版號是對整個樹有效, 而不僅只於個別的檔案. 每一個修訂版號都可選取整個樹, 它對應到某個更動送交之後的特定狀態的檔案庫. 另一個思考的方式, 就是版號 N 表示是第 N 次送交之後的檔案庫的檔案系統狀態. Subversion 使用者說 ``foo.c 的修訂 5 版'' 時, 實際上的意義是 ``出現在修訂 5 版的 foo.c''. 請注意, 基本上一個檔案的修訂 N 與 M 版並不見得是不同的! 由於 CVS 使用的是檔案自各的修訂版號, CVS 使用者可以先看看附錄 A, "對 CVS 使用者介紹 SVN", 以了解更多的細節.

工作複本並不見得一定會符合檔案庫某一特定的修訂版.因为你没有在提交时不会对私有的工作空间和repository做同步。(参见手册的阐述。)这是Mixed Revisions的一种情况。

working revision:what revision your working file is based on 。

Unchanged, and current

Locally changed, and current

Unchanged, and out-of-date

Locally changed, and out-of-date

Mixed Revisions

 

几个关键的修订版本

#Note

# PREV, BASE, and COMMITTED can be used to refer to local paths, but not to URLs.

Base:每次更新后存放于.svn/text-base的原始未改动版本(pristine copy)。
Head:
檔案庫內的最新版本

COMMITTED

一個物件距 BASE 修訂版之前 (包含), 最近一次修改的修訂版.

PREV

最近一次修改的修訂版的 前一個 修訂版. (技術上來講, 就是 COMMITTED - 1.)

Subversion 可接受相當多的日期格式— 只要記得將有空格的日期以引號包起來就好.{“10 days ago“}

請記住 Subversion 會找出離你指定日期 最近的檔案庫修訂版.

 

Note

雖然你的工作複本 “就只是跟其它在系統上的目錄與檔案的集合沒有兩樣”, 但是你要重新擺放工作複本裡的東西的話, 你還是得讓 Subversion 知道. 如果你要複製或移動工作複本中的某個項目, 你應該使用 svn copysvn move, 而非作業系統所提供的複製與移動的指令. 本章稍後會再討論到這些指令.

 

U foo

檔案 foo 會被更新 (Update) (自伺服器取得更動).

A foo

檔案或目錄 foo 會被新增 (Add) 到工作目錄中.

D foo

檔案或目錄 foo 會自工作目錄刪除 (Delete).

R foo

工作複本的檔案或目錄 foo 被取代 (Replace); 也就是說, foo 被刪除, 然後新增同一名稱的新項目. 雖然它們的名稱是相同的, 但是檔案庫會認為它們是不同的, 而且有著不同的歷史進程.

G foo

檔案 foo 自檔案庫取得新的更動, 但是本地複本的檔案含有你的更動. 不過這些更動並沒有重疊的部份, 所以 Subversion 可以毫無困難地合併 (merGe) 檔案庫的更動.

C foo

檔案 foo 自伺服器收到衝突的 (Conflict) 更動. 從伺服器來的更動, 與你對該檔案的更動有重疊的部份, 不過不必太驚慌失措. 衝突必須由人類 (也就是你) 來解決; 我們在本章稍後會討論這個狀況.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值