ubuntu搭载本地svn服务器

来源:互联网 发布:mac资源库在哪里 编辑:程序博客网 时间:2024/06/05 16:08

本方法适用于本机或小型局域网代码版本控制。使用svn://协议。如果想使用http://协议则需安装配置apache.本文还基于ubuntuwindows samba共享服务。

 

1.安装软件

[c-sharp] view plaincopy

1.  sudo apt-get install subversion  

2.创建代码库

cd /home/svnuser/svn 

mkdir repository_name

[c-sharp] view plaincopy

1.  svnadmin create repository_name  

这条命令会在当前目录下创建名为repository_name的文件夹,后面用hopenvm_linux作为实例。其下包含

[c-sharp] view plaincopy

1.  hopenvm_linux|-- conf/|-- db/|-- format|-- hooks/|-- locks/`-- README.txt  

3. 启动svnserve服务器

[c-sharp] view plaincopy

1.  svnserve -d -r /home/svnuser/svn 

-r后面是repository_name文件夹的上级目录,启动服务器后,可以查到库的信息

[c-sharp] view plaincopy

1.  coldfire@ubuntu:~/workspace/svn$ svn info svn://192.168.1.11/hopenvm_linuxPath: hopenvm_linuxURL: svn://192.168.1.11/hopenvm_linuxRepository Root: svn://192.168.1.11/hopenvm_linuxRepository UUID: 08e1aec2-22ff-447f-afd3-23c3ff467b4dRevision: 0Node Kind: directoryLast Changed Rev: 0Last Changed Date: 2011-06-06 04:53:28 -0700 (Mon, 06 Jun 2011)  

关于svnserve.conf的内容配置来源:SVN认证失败 

解决办法是:

passwd文件内容:

[plain] view plaincopy

1.  [users]  

2.  # harry = harryssecret  

3.  # sally = sallyssecret  

4.  admin = admin  

5.  test = test  

格式是:帐号 =密码一个用户为一行

接着:将svnserver.conf的内容中:

anon-access =read改为 anon-access = none即可。

总结:

一、配置

[plain] view plaincopy

1.  [general]  

2.  anon-access = none   #使非授权用户无法访问 如果该值为read,则非授权用户可读。这就为什么不用输入帐号密码就可访问的原因了  

3.  auth-access = write  #使授权用户有写权限  

4.  password-db = passwd #指明密码文件路径  

5.  #authz-db = authz    #访问控制文件  

6.  realm = My First Repository  


二、指令

启动服务执行svnserve -d -rsvn服务根目录

svnserve
指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。

使用以下命令检出 svn checkout svn://127.0.0.1/dirIP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。 

版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。

三、上面我说了,如果去掉authz-db = zuthz前面的#号,必然认证失败。我在这要纠正一下。无知者无畏啊。经过测试,顺利通过认证

1、将上面的authz-db = authz前面的 # 号去掉

2、修改authz文件

[plain] view plaincopy

1.  [aliases]  

2.  # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average  

3.    

4.    

5.  [groups]  

6.  harry_and_sally = admin,sally # 这里我采用分组形式。因为是团队合作,所以有多个人  

7.  # harry_sally_and_joe = harry,sally,&joe  

8.    

9.    

10. # [/foo/bar]  

11. # harry = rw  

12. # &joe = r  

13. # * =  

14.   

15. [bobo:/] #对bobo仓库授权  

16. @harry_and_sally = rw #r 表示读 w 表示写  

17. # * = r # * 通配符,表示所有人,如果去掉前面#号,表示任何人可访问(只读访问,不可写)——注意:经测试,去掉#后,仍需要验证。  


如果不采用组的方式,配置如下:

[plain] view plaincopy

1.  [aliases]  

2.  # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average  

3.    

4.  [groups]  

5.  # harry_and_sally = zm2714,sally  

6.  # harry_sally_and_joe = harry,sally,&joe  

7.    

8.  [bobo:/]  

9.  admin = rw  

10. # &joe = r  

11. #* =r  

12.   

13. #[bobo:/]  

14. #@harry_and_sally = rw  

15. # * = r  

 

原创粉丝点击