1、在线安装svn服务器
- sudo apt-get install subversion
sudo apt-get install subversion
2、创建svn仓库
- sudo mkdir /home/svn
- cd /home/svn/project
- svnadmin create /home/svn/project
sudo mkdir /home/svn
cd /home/svn/project
sudo chmod -R 777 project/
svnadmin create /home/svn/project
上面的代码主要实现如下功能:
(1)、在home目录下创建一个svn目录,作为svn的根目录;
(2)、在根目录中创建一个project目录,作为一个工程分支,运行svnadmin create命令之后会在该目录下生成很多svn的配置,后面需要修改这些配置文件进行svn服务器的配置。
3、建立第一个svn版本
本例子中导入一个android4.2的android源代码作为svn的初始版本。在project同级目录创建android4.2目录,将代码拷贝带目录中,使用如下命令进行导入。
- svn import ./android4.2 file:///home/svn/project -m "Initial first version with android4.2 source code."
svn import ./android4.2 file:///home/svn/project -m "Initial first version with android4.2 source code."
这里也可以不到如初始版本,在后面配置完成svn之后,启动svn服务器,然后在本地checkout一个svn版本的分支,在其中添加代码,然后作为第一个版本提交也可。
4、配置svn
- sudo vi home/svn/project/conf/svnserve.conf
sudo vi home/svn/project/conf/svnserve.conf
将[general]下的
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
前面的注释去掉(删除#号),并将其顶格后保存并退出。
其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。
但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。
- vi home/svn/project/conf/passwd
vi home/svn/project/conf/passwd
在[users]下添加用户名和密码,格式使用“ 用户名 = 密码”。如
test = hellokitty
保存并退出。
- vi home/svn/project/conf/authz
vi home/svn/project/conf/authz
在[groups]用户组下面分组并给不同的组赋予不同的权限。
[groups]
admin = test
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
[/]
@admin = rw
* = r
[/hello]
@user hello = rw
@user world =
[/world]
@user world = rw
@user hello =
保存并退出。
上面的配置表示
(1)、添加一个admin的组,组里面有一个test的成员。
(2)、管理员组中的用户可以读写[/](即svn工作目录)下的内容,其余用户只能读取该目录下的内容。
(3)、用户hello能读取[/hello](即svn工作目录下面有个hello目录)中的内容,其余用户没权限访问;
(4)、用户world能读取[/world](即svn工作目录下有个world目录)中的内容,其余用户没有权限访问;
工作目录可以先checkout一个本地分支,然后在其中建立相应目录(如hello目录和world目录),然后再提交到服务器。以后用户hello就能使用svn客户端访问根目录下的hello目录了。
5、启动服务
svnserve -d -r home/svn/
svnserve -d -r home/svn/
6、停止服务
sudo killall svnserve
想要重启svn服务器时需要先运行停止服务的命令,然后再运行启动服务的命令即可。
7、下载分支
成功完成配置并启动服务后,在客户端上安装svn工具,并使用服务器ip地址和仓库地址即可下载分支。如
- svn co svn://192.168.0.5/project ./
svn co svn://192.168.0.5/project ./
将下载一个分支到当前目录下,下载下的工程不包括project目录。
8、开机自动启动svn
在init.d目录建立一个脚本文件svnd.sh。在其中输入如下内容:
- #!/bin/bash
- #svnserve startup
- svnserve -d -r home/svn
#!/bin/bash
#svnserve startup
svnserve -d -r home/svn
保存退出。更新,修改权限:
- # update-rc.d svnd.sh defaults
- # chmod 777 svnd.sh
# update-rc.d svnd.sh defaults
# chmod 777 svnd.sh