svn服务器创建并提交代码

来源:互联网 发布:linux 测试ping 编辑:程序博客网 时间:2024/05/29 19:35

1、在线安装svn服务器

[plain] view plaincopyprint?
  1. sudo apt-get install subversion  

2、创建svn仓库

[html] view plaincopyprint?
  1. sudo mkdir /home/svn  
  2.   
  3. cd /home/svn/project  
  4. svnadmin create /home/svn/project  

    上面的代码主要实现如下功能:

   (1)、在home目录下创建一个svn目录,作为svn的根目录;

   (2)、在根目录中创建一个project目录,作为一个工程分支,运行svnadmin create命令之后会在该目录下生成很多svn的配置,后面需要修改这些配置文件进行svn服务器的配置。

3、建立第一个svn版本

       本例子中导入一个android4.2的android源代码作为svn的初始版本。在project同级目录创建android4.2目录,将代码拷贝带目录中,使用如下命令进行导入。

[html] view plaincopyprint?
  1. svn import ./android4.2 file:///home/svn/project -m "Initial first version with android4.2 source code."  

     这里也可以不到如初始版本,在后面配置完成svn之后,启动svn服务器,然后在本地checkout一个svn版本的分支,在其中添加代码,然后作为第一个版本提交也可。


4、配置svn

[html] view plaincopyprint?
  1. sudo vi home/svn/project/conf/svnserve.conf  

将[general]下的
anon-access = readauth-access = writepassword-db = passwdauthz-db = authz

前面的注释去掉(删除#号),并将其顶格后保存并退出。

其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。

但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。


[html] view plaincopyprint?
  1. vi home/svn/project/conf/passwd   

在[users]下添加用户名和密码,格式使用“  用户名 = 密码”。如

  test = hellokitty

保存并退出。

[html] view plaincopyprint?
  1. 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/  


6、停止服务

sudo killall svnserve


想要重启svn服务器时需要先运行停止服务的命令,然后再运行启动服务的命令即可。

7、下载分支

成功完成配置并启动服务后,在客户端上安装svn工具,并使用服务器ip地址和仓库地址即可下载分支。如

[html] view plaincopyprint?
  1. svn co svn://192.168.0.5/project ./  

将下载一个分支到当前目录下,下载下的工程不包括project目录。


8、开机自动启动svn

在init.d目录建立一个脚本文件svnd.sh。在其中输入如下内容:

[html] view plaincopyprint?
  1. #!/bin/bash  
  2. #svnserve startup  
  3. svnserve -d -r home/svn  
保存退出。更新,修改权限:
[html] view plaincopyprint?
  1. # update-rc.d svnd.sh defaults  
  2. # chmod 777 svnd.sh   

0 0
原创粉丝点击