svn服务器创建并提交代码

本文介绍了如何在线安装svn服务器,创建svn仓库,导入初始版本,配置权限,并启动及停止服务。通过修改svnserve.conf、passwd和authz文件,设置不同用户的访问权限,最后讨论了如何实现svn的开机自动启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在线安装svn服务器

  1. sudo apt-get install subversion  
   sudo apt-get install subversion

2、创建svn仓库

  1. sudo mkdir /home/svn  
  2.   
  3. cd /home/svn/project  
  4. 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目录,将代码拷贝带目录中,使用如下命令进行导入。

  1. 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

  1. 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 就能达到目的。


  1. vi home/svn/project/conf/passwd   
vi home/svn/project/conf/passwd 

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

  test = hellokitty

保存并退出。

  1. 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地址和仓库地址即可下载分支。如

  1. svn co svn://192.168.0.5/project ./  
svn co svn://192.168.0.5/project ./

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


8、开机自动启动svn

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值