前置条件
1、你的服务器是linux并且有固定的ip,没有固定的ip每次都要设置,超麻烦。阿里、百度、新浪等的云服务器都有固定ip滴,就是比较贵哦。
2、有sudo权限,没有的话进root用户给自个添加(usermod -G sudo 用户名)。
安装svn的服务器端
sudo apt-get install subversion
管理多个项目的代码仓库
我们可能有多个项目,所以需要分开管理。
cd /home
mkdir code
cd code
//创建三个代码仓库,用于三个项目
svnadmin create project1
svnadmin create project2
svnadmin create project3
//把配置文件放到根目录(/home/code)来统一管理
cd /projcet1/conf
cp authz passwd /home/code
//进入各个项目的svnserve.conf文件(/home/code/project1/conf),这里以project1为例,其他两个项目一样
vi svnserve.conf
修改成如下:(记得把前面的#去掉,#是用来注释的)
anon-access = none //禁止匿名访问
auth-access = write
password-db = /home/svn/passwd //统一使用密码文件
authz-db = /home/svn/authz
realm = project1 //你的项目名,svn客户端访问时需要用来对应访问的
//三个项目都依次修改后,回到/home/code
cd /home/code
vi passwd
//添加用户和密码,然后保存退出
[users]
user1 = user1
user2 = user2
admin1 = admin1
//配置用户权限,然后保存退出
vi authz
[groups] //分组
admin = admin //假如有多个用逗号分隔
guest = user1
guset1 = user2
[/] //管理者拥有所有读写权限
* =
@admin = rw
[project1:/] //项目1的访问控制,guest1,2无法访问
@admin = rw
或
user1 = rw
user2 = rw
[project2:/]
@guest = rw
启动svn服务
//-d指明以守护模式运行,-r指明后台运行,svn自动在3690端口监听。3690是默认端口,可以使用“–listen-port=”或者“–listen-host=”来指定其它端口
svnserve -d -r /home/code
假如要停止服务
killall svnserve
或者
ps -ef|grep svnserve
kill -9 对应的线程id号
svn客户端操作
svn的地址为:svn://服务器的ip地址或域名/项目名
其他问题
假如报authorization failed错误,在/home/code下的authz文件后面加上killall svnserve
[\]
* = rw
测试
1、可以到windows上新建一个文件夹,用svn Checkout(前提是装有TortoiseSVN),地址填写:svn://202.202.202.202/project1
2、就在当前的linux上,到/home/code以外的目录去,执行:svn checkout svn://202.202.202.202/project1,接下来的就是svn的命令操作咯~~~
over