SVN笔记

SVN


版本管理工具,与git不同的是,svn版本提交,修改都会实时同步到远程服务器,因而svn会有更严格的权限控制。而git可支持本地修改再提交到服务器。

规范

至少有一个trunk分支,trunk分支是线上稳定版本,能够快速回滚。

开发是从trunk分出一个release分支,该分支开发合并完毕后先用于预发布环境,待稳定后合并到trunk版本。

服务器启动

1
2
3
4
# 创建版本
svnadmin create /opt/svn/runoob
# 守护进程监听
svnserve -d -r 目录 --listen-port 端口号

配置文件在 conf/svnserver.conf

常用指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 增加删除文件
svn add/svn delete
# 查看冲突差异
svn diff
# 更新文件
svn update
# 提交
svn commit
# 创建新分支 切换分支 cd 到新分支目录下
svn copy xxx/ branchse/new_branch
# 查看状态
svn status
# 版本回退
svn revert filename
# 锁解锁
svn lock/unlock filename -m"备注信息"
# 撤回一个旧版本并提交一个新版本,rerverse merge 2:1的意思是现在版本为2,撤销1版本
svn merge -r 2:1 filename
# 查看提交日志
svn log
# tag
# 版本管理系统支持 tag 选项,通过使用 tag 的概念,我们可以给某一个具体版本的代码一个更加有意义的名字。
# Tags 即标签主要用于项目开发中的里程碑,比如开发到一定阶段可以单独一个版本作为发布等,它往往代表一个可以固定的完整的版本
svn copy xxx/ tags/v1.0