Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4807199
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2008-08-20 20:11:01

    其实接触svn都是很久以前的事了,有此博士让去sourceforge下个soft自己先研究研究,下下来后被问道用什么下的,我当时还不解可好久,这有什么好问的windows当然是thunder了哦,linux下就wget了!博士很生气后果不严重,要摇头,告诉我用svn去下.用了后才知道这玩意的伟大,佩服老外~~~svn用了后,你好我好他也好,大家好才是真的好.废话说了这么多开始吧!
   之间已经安装好apache2了的哦,这个怎么装DIY喽~~
   install:
     sudo apt-get install subversion  libapache2-svn
   prepare:
     sudo groupadd subversion
     sudo useradd -g subversion svn(ps:这里两条添加用户到组的命令有所不同,第一个svn用户不存在,而www-data用户是已经存在的)
     sudo usermod -g subversion www-data然后将www-data(apache帐号)添加到这个组,也可以直接修改sudo vi /etc/group
     我的subversion:x:1003:www-data,svn(就是svn和www-data属于这个组了哦)
   $ sudo mkdir /home/svn
   
$ cd /home/svn
   
$ sudo mkdir myproject
   
$ sudo chown -R root:subversion myproject
   
$ sudo chmod -R g+rws myproject(赋予组成员对所有新加入文件仓库的文件拥有相应的权限)
   创建 SVN 文件仓库:
      sudo svnadmin create /home/svn/myproject
      sudo htpasswd -c /etc/subversion/passwd svn(添加svn用户并设置密码,注意是写道了/etc/subversion/passwd文件,这个后面要使用的)
     导入你的源码:
      sudo svn import ~/Desktop/iptables file://ip/home/svn/myproject(把iptables整个目录导入到储存库中的myproject目录中 ps:vi编辑器会让你输入一些提示,随便输几个字就可以了)
      svn list file://ip/home/svn/myproject(显示储存库内容)
      由于是本地ip可有可无
     上面我使用了file://ip/形式的URL来访问Subversion库,这表示在本地通过文件系统访问。但我们的Subversion库可能需要通过网络被其它用户访问,这就需要用到其它的协议,下表是Subversion支持的各种访问协议:
     file:/// 通过本地磁盘访问
     http:// 与Apache组合,通过WebDAV协议访问
     https:// 同上,但支持SSL协议加密连接
     svn:// 通过svnserve服务自定义的协议访问
     svn+ssh:// 同上,但通过SSH协议加密连接
       ssh现在对我来说是nothing,我还就喜欢走明文呢!这里只将http
     配置文件位于/etc/apache2/mods-enabled/目录下,配置文件共有两个,分别是dav_svn.conf和dav_svn.load,dav_svn.load文件负责装载必要的模块,内容如下:
    # Load mod_dav_svn when apache starts
     LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
     LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
   在装载mod_dav_svn.so前,必须先装载mod_dav.so模块。它由dav.load文件控制,内容如下:
    LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
    dav_svn.conf是mod_dav_svn.so模块的配置文件,内容如下:
    #设置访问路径
     DAV svn #启用
     SVNPath /home/svn/myproject #设置储存库路径
     AuthType Basic #启用Apache基础验证
     AuthName "Subversion Repository" #设置验证框标题
     AuthUserFile /etc/apache2/dav_svn.passwd #指定验证用户文件名
     AuthzSVNAccessFile /etc/apache2/dav_svn.authz #启用目录级别授权
  
      AuthzSVNAccessFile
      Require valid-user
  


    修改/home/svn/myproject目录访问权限使它可被Apache进程访问,我的Apache是用www-data启动的,所以设置方法如下:
    sudo chown -R www-data.www-data /home/svn/myproject
    通过Apache的用户验证功能可以区别匿名用户和验证用户,从而赋予匿名用户读权限和验证用户读/写的权限。这些权限只能在全局范围内设置,不能设置具 体的某个目录是否能被某个用户操作。要实现目录级别的授权,就要使用mod_authz_svn.so模块提供的 AuthzSVNAccessFile指令。它会指定一个授权文档,该授权文档设置具体的目录权限。根据上面的配置,授权文档名叫 dav_svn.authz,它的内容如下:
[groups] #定义组
admin=svn

[/] #定义储存库目录的访问权限
* =t
@admin=rw

    梦八比赛到了图等下截上
  
     sudo svn import ~/Desktop/iptables file://ip/home/svn/myproject
     sudo svn inport ~/Desktop/tcp_ip_code file:///home/svn/myproject/tcp_ip
     以上两条是我的导入命令,出图中也可以看出,第一条command由于没有有指定文件夹上传后比较紊乱,指定文件夹名后(tcp_ip)就将要导入的文件夹(tcp_ip_code)内的所有内容copy到tcp_ip
     svn co myproject_local --username svn
     你也可以/tcp_ip只下载tcp_ip文件夹,第二个myproject_local就是保存在当前路径下的myproject文件夹下,这个文件夹会自行创建,文件夹名字任意
     要同步文件仓库和本地的副本
     $ cd project_dir(这个dir是本地副本的dir,就是上面的myproject_local)
    
$ svn update
     svn在windows也是可以运行的哦,安装相应的soft就可以了,好像是tortisesvn(乌龟svn),我不知道单词拼写出错没^_^
     
   两幅图的地址栏比较,这个并没有对我的apache造成任何影响,这是我自己之前care的 
   在该文件中使用的用户需在apache2的用户文件/etc/subversion/passwd中预先设置好这两个文件可能个人的设置不一样其实就是上面dav_svn.conf文件中AuthUserFile,AuthzSVNAccessFile指定的.
   svn自带的svn方式,http://blog.chinaunix.net/u2/64853/showart_528172.html,这哥们写的比较详细,我DIY了下还可以,也比较easy,我这里就不写了
   wiki的也可以参考下,wiki+sourceforge简直就是无敌组合,搞不懂政府为什么要封~~~,我一般都使用代理上的,firefox有个代理插件,听说现在好像解封了,我不care了.


 
阅读(1243) | 评论(0) | 转发(0) |
0

上一篇:ftp服务器搭建

下一篇:shell脚本进度条

给主人留下些什么吧!~~