1.1 卸载/安装SVN服务端
1) 卸载
sudo apt-get remove --purge subversion
(--purge 选项表示彻底删除改软件和相关文件)
2) 安装:
sudo apt-get install subversion
可以验证一下是否安装成功:
svn help //--svn帮助
svn --version //--svn版本
svnserve --version //--svn server版本
1.2 创建SVN项目
1.2.1 创建目录
sudo mkdir /home/svn/repository // repository为项目名称
sudo chmod -R o+rw /home/svn/repository // 递归设置该目录下的所有文件的权限
1.2.2 创建仓库
sudo svnadmin create /home/svn/repository
执行上面这个命令后会在 /home/svn/repository 目录下建立仓库,并在这个目录下生成一些文件
1.2.3 设置访问权限
在上面生成文件中,修改 conf/svnserve.conf 文件:
[general]
# 匿名访问的权限,可以是 read,write,none,默认为 read
anon-access = none
# 已认证用户的权限,可以是 read,write,none,默认为 write
auth-access = write
# 指定密码数据库的路径,这里表示当前目录下的 passwd 文件
password-db = passwd
# 指定用户管理库的路径,这里表示当前目录下的 authz 文件
authz-db = authz
1.2.4 添加用户
修改 conf/passwd 文件:
[users]
# 用户名 = 密码(明文)
zhang_san = 123
li_si = 456
xiao_ming = 789
1.2.5 设置用户的权限
修改 conf/authz 文件:
[groups]
AI = zhang_san, li_si # AI 组有成员: zhang_san, li_si
[/] # 从仓库的根目录开始设置权限
xiao_ming = rw # xiao_ming 有 rw 的权限
@AI = rw # AI 组有 rw 的权限
* = r # 其他的所有成员有 r 的权限
1.3 启动/停止SVN服务端
1) 启动SVN服务端
svnserve -d -r /home/svn [--listen-host 192.192.154.128]
# -d 表示在后台运行
# -r 表示 /home/svn 是 SVN 服务端的根目录
# --listen-host IP 可以不用,表示如果服务器有多ip的话, --listen-host 会指定监听的ip地址
可以用下面的命令查看svnserve是否运行:
ps aux | grep svnserve
2) 停止SVN服务端
killall svnserve
1.4 开放SVN服务器的端口
svn默认端口是3690,若访问不了则需要在防火墙上开放这个端口。
如果要测试端口号是否能访问,可以在客户机(linux)上执行:
telnet 192.168.0.128 3690
若出现下面的信息,表示能够访问:
ubuntu中防火墙的相关命令:
// 安装防火墙
sudo apt-get install ufw
// 查看防火墙版本
sudo ufw version
// 开启防火墙
sudo ufw enable
sudo ufw default deny
// 关闭防火墙
sudo ufw disable
// 开启/禁用某端口
sudo ufw allow 53 //允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 //允许此IP访问所有的本机端口
sudo ufw allow from 192.169.1.100 to any port 22 // 允许此IP访问22号端口
sudo ufw deny smtp //禁止外部访问smtp服务
sudo ufw delete allow 53 //删除上面建立的某条规则(这里就表示为禁用53号端口)
// 查看防火墙状态
sudo ufw status
如果要将SVN更改至其他的端口,可以在启动SVN服务时加上参数 --listen-port 9999,那么客户端在连接服务端时就需要加上端口号,如:svn://192.168.1.17:9999/.
2 SVN客户端(windows)
2.1 安装
点击下载(如:TortoiseSVN-1.10.3 - 64.bit)
傻瓜式安装,一直点击next至安装完成
2.2 从SVN服务端下载项目
1) 自己新建一个目录,并进入该目录
2) 在文件夹中点击右键,点击SVN Checkout:
3)指定 SVN 服务器的项目路径。在上文的描述中,这里的 svn://192.168.154.128/. 指向的是 IP 为 192.168.154.128,端口号(默认)为 3690 的 SVN 服务器,也就是 ubuntu 中的 /home/svn/ 目录,加上 /repository 表示该服务器下的 repository 仓库
2.3 提交至SVN服务端
1)首先在工程目录下点击右键 ==> SVN Update,将仓库里的代码与当前客户端的代码合并,如果出现冲突,需要自己修改冲突的内容
2) 点击右键 ==> SVN Commit
3) 添加版本提交日志,勾上目标文件,然后提交
2.2 重置客户端的用户名/密码
第一次下载仓库时会提示输入用户名和密码,之后就不再提示了,如果要修改可以参照下面的方法:
删除仓库的相关数据后,再次下载或提交时会提示输入用户名/密码,此时即可更改
3 SVN客户端(linux)
3.1 命令大全
- 加载服务器上的仓库
svn checkout svn://192.168.1.1/pro/domain
- 修改URL(先用 svn info 查看)
svn switch --relocate "原svn地址" "新svn地址"
- 添加文件
svn add file
- 写日志
svn commit -m “add test file for my test“ test.php
- 提交
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200) (如果在提交的时候冲突,需要先update,修改文件,然后执行清除:svn resolved,最后再提交commit)
- 查看文件的状态
svn status path
- 查看日志
svn log
- 查看文件详细信息
svn info
- 比较差异
svn diff