SVN的基本用法

简介

SVN是一个开源的版本控制系统,与著名的git所做的事情是一样的。数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

几个概念:

日常开发过程其实就是这样的:在最开始Checkout一份源代码到本地 –> 在每次开发之前Update(获得最新的代码) –> 作出自己的修改并调试成功 –> Commit(大家就可以看到你的修改了)。

检出(checkout)

Checkout 操作是用来从版本库创建一个工作副本。工作副本是开发者私人的工作空间,可以进行内容的修改,然后提交到版本库中。

命令例子:

svn checkout svn://192.168.0.1/runoob01 --username=user01

更新(update)

当服务器上的版本库作了更改,需要使用update命令将本地的副本更新到最新版本。只有更新之后本地的更改才能提交到版本库。

命令例子:

svn update

执行变更

将更改提交到版本库。

命令例子:

svn commit -m "SVN readme."     # -m后面是本次提交的说明

svn status 查看工作副本的状态

svn add 将新建的文件添加到版本控制

版本回退

当我们想放弃对文件的修改,可以使用 SVN revert 命令。svn revert 操作将撤销任何文件或目录里的局部更改。

revert 操作不单单可以使单个文件恢复原状, 而且可以使整个目录恢复原状。恢复目录用 -R 命令,如下:

svn revert -R dir_name

假如我们想恢复一个已经提交的版本怎么办。为了消除一个旧版本,我们必须撤销旧版本里的所有更改然后提交一个新版本。这种操作叫做 reverse merge。首先,找到仓库的当前版本,现在是版本 22,我们要撤销回之前的版本,比如版本 21。

svn merge -r 22:21 file_name

查看历史信息

可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史:

分支

svn命令都是可以直接操作远程仓库的,包括创建分支(copy)、合并分支(merge)、列出文件(list)等。

创建分支:使用copy,例如,svn copy trunk/ branches/my_branch

合并分支:例如,svn merge ../branches/my_branch/ 将my_branch合并到当前目录所在分支