与 git 一样,svn (Subversion)也是一个开源的版本控制系统,相比于 git 的分布式管理,svn是一个集中式的版本管理工具。今天介绍下它的简单使用。
svn 是集中式的版本管理工具,它依赖于 svn 服务器,所有的版本信息都保存在服务器上。
svn使用总结
创建版本库
svn的使用步骤如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| ubuntu安装svn 1. apt-get update 2. apt-get install subversion 安装完成后,可以执行 svnserve --version 查看版本信息
创建版本库: 1. 在 /home/wyzane 下创建 svn 目录(作为中央仓库) 2. 创建仓库:svnadmin create /home/wyzane/svn 3. 创建完成后,在 svn 下会生成 conf、db 等目录 目录结构如下: . ├── conf │ ├── authz │ ├── hooks-env.tmpl │ ├── passwd │ └── svnserve.conf ├── db │ ├── current │ ├── format │ ├── fsfs.conf │ ├── fs-type │ ├── min-unpacked-rev │ ├── rep-cache.db │ ├── rep-cache.db-journal │ ├── revprops │ ├── revs │ ├── transactions │ ├── txn-current │ ├── txn-current-lock │ ├── txn-protorevs │ ├── uuid │ └── write-lock ├── format ├── hooks │ ├── post-commit.tmpl │ ├── post-lock.tmpl │ ├── post-revprop-change.tmpl │ ├── post-unlock.tmpl │ ├── pre-commit.tmpl │ ├── pre-lock.tmpl │ ├── pre-revprop-change.tmpl │ ├── pre-unlock.tmpl │ └── start-commit.tmpl ├── locks │ ├── db.lock │ └── db-logs.lock └── README.txt 其中,conf目录下存放了配置文件,passwd 是用户配置文件,可以配置用户名和密码。authz 是权限配置文件,可以配置用户对应的读写权限,也可以对用户进行分组配置。svnserve.conf 是基本的配置文件。
启动服务: svnserve -d -r /home/wyzane/svn (默认端口 3690) 其中: -d:表示在后台运行 -r:指定服务器的根目录 查看进程:ps aux | grep svnserve
客户端 checkout 代码需要执行以下命令: svn checkout svn://192.168.0.105/ --username wyzane
|
在 windows 下使用时,我们可以下载 svn 的 windows 版本进行安装,下载地址为:
1
| http://subversion.apache.org/packages.html
|
分支操作
1 2 3 4 5
| 1. 首先创建 branches 目录并提交 2. 创建分支:svn copy trunk/ branches/sub,并使用 svn commit 提交(基于 trunk 的分支) 3. 修改 sub 分支上的内容并提交 4. 合并分支:切换到 trunk 目录,执行svn merge ../branches/sub/ 5. 提交合并后的内容:svn commit -m "update"
|
tag操作
通过 tag 标签,可以给某一具体的版本加上一个有意义的名称,便于更好的管理,tag 的使用方式如下:
1 2 3
| 1. 创建 tags 目录并提交:mkdir tags & svn add tags & svn commit -m "commit tags dir" 2. 在当前的 trunk 版本上打一个 tag:svn copy trunk/ tags/v1.0 3. 提交到版本库:svn commit -m "v1.0"
|
常用命令
1 2 3 4 5 6 7 8 9
| svn add test.txt # 添加文件到版本库中 A test.txt svn status # 查看状态 A test.txt svn commit -m "update" # 将改动的文件提交到版本库,此时再使用 svn status 时,就不会有输出信息了
svn update # 更新版本哭的改动到本地
svn log # 查看版本库的提交历史
|
使用时可能的错误
1 2 3 4 5
| 1. commit failed, 没有找到事务5-9 解决:这是因为 svnserve 的服务没有开启,启动 svnserve 即可。
2. the error was 条目不可读 解决:配置文件中修改 anon-access 的值为 none,然后重启即可
|