ubuntu12.04lts SVN服务器构建
一.安装SVN和配置SVN
1.安装SVN
apt-get install subversion
2.创建/usr/local/svn目录,项目目录,和配置文件目录
mkdir /usr/local/svn
mkdir /usr/local/svn/project
mkdir /usr/local/svn/conf
3.创建配置和认证文件
(----------/usr/local/svn/conf/svnserve.conf------------)
[general]
anon-access=read //如果不想让匿名用户下载,则改成none
auth-access=write
password-db=passwd
authz-db=authz
其中anon-access和auth-access分别为匿名和有权用户的权限,默认给匿名用户只读。
(----------/usr/local/svn/conf/passwd---------)
[users]
user1=123456
user2=123456
user3=123456
(----------/usr/local/svn/conf/authz---------)
[groups]
group1=user1,user2
group2=user3
[/]
@group1=rw
*=r
这里设置了三个用户user1、user2、user3密码都是123456
其中user1、user2属于group1组,有读和写的权限,user3属于group2组只有读的权限。
4.修改文件执行权限
chmod +x /usr/local/svn/conf/authz
chmod +x /usr/local/svn/conf/passwd
chmod +x /usr/local/svn/conf/svnserve.conf
5.编写启动SVN服务器的脚本
(----------/usr/local/svn/svn_start.sh----------)
#!/bin/sh
/usr/bin/svnserve -d -r “/usr/local/svn/project” --config-file “/usr/local/svn/conf/svnserve.conf”
加入执行权限 chmod +x /usr/local/svn/svn_start.sh
6.启动SVN服务器
cd /usr/local/svn/
./svn_start.sh
注意:svn服务程序是一个守护进程,其在后台运行。
二. 创建SVN仓库并检出
1.创建SVN仓库
svnadmin create /usr/local/svn/project/test
此时在/usr/local/svn/project/test目录下有如下文件
conf db format hooks locks README.txt
2.linux一般自带有svn客户端程序,例如我的svn服务器部署在192.168.0.100上,则检出的命令为:
svn checkout svn://192.168.0.100/test ##简写:svn co
使用ls -a查看导出的test目录,可以看到其中包含一个.svn的隐藏目录,这个目录中存放着svn版本管理的一些数据。
三. SVN中相关命令
1.往版本库中添加新的文件
svn add test.php
2.将改动的文件提交到版本库
svn commit -m “add test file for my test” test.php ##简写:svn ci
3.加锁/解锁
svn lock -m “lock test file” test.php
svn unlock test.php
4.更新版本
##更新到最新版本
svn update test.php ##简写: svn up
##更新到指定版本
svn update -r 200 test.php
5.查看文件或者目录状态
##查看目录下的文件和子目录的状态(正常不显示)
svn status path ##简写: svn st
## ?: 不再svn的控制中
## M: 内容被修改
## C: 发生冲突
## A: 预定加入到版本库
## K: 被锁定
##查看目录下所有的文件和子目录的状态
svn status -v path
第一列为最高版本号,第二列为当前工作版本号,第三列最后修改人,第四列文件路径。
6.删除文件
svn delete test.php -m “delete test file” ##简写: svn (del, remove, rm)
7.查看文件的所有修改日志
svn log test.php
8.查看文件详细信息
svn info test.php
9.比较差异
##将修改的文件与基础版本比较
svn diff test.php ##简写:svn di
##比较两个版本之间的差异
svn diff -r 200:201 test.php
10.将两个版本之间的差异合并到当前文件
svn merge -r 200:201 test.php ##一般都会产生冲突,需要处理一下
11.SVN帮助
svn help
12.版本库下的文件和目录列表
svn list path ##简写:svn ls
13.创建纳入版本控制下的新目录
svn mkdir
14.恢复本地修改
svn revert ##该命令不会恢复被删除的目录
15.代码库URL变更
svn switch
16.解决冲突
svn resolved
17.输出指定版本的文件
svn cat -r PREV test.php > test2.php ##PREV是上一版本,也可以写具体版本号