加载中…
个人资料
paper0023
paper0023
  • 博客等级:
  • 博客积分:0
  • 博客访问:225,447
  • 关注人气:28
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

原创  ubuntu配置svn

(2009-11-09 15:36:16)
标签:

杂谈

分类: lamp

1.sudo apt-get install subversion
2.建立svn文件夹到home目录下
  sudo mkdir /home/svn
  sudo svnadmin create /home/svn/apachesvn
3.启动svn网络服务
 svnserve -d -r /home/svn
 其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址。 /home/svn指定svn数据仓库存放的目录位置
  查看进程 ps -aux | grep svn  若有很多svn进程在进行的话会看见很多条进程显示
4.设置svn: 方式的访问权限
  /home/svn/apachesvn/conf
  在每个数据仓库目录下都有一堆目录,进入 conf 并打开 svnserve.conf 这个文件,找到以下几行,
  (并把前面的注解符号 ‘#’ 去掉,注意千万在每行的前面别留任何空格。)
  anon-access = read
  auth-access = write
  password-db = passwd
  authz-db = authz.conf
 其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。
 但如果想拒绝匿名用户的访问,只需把 read 改成 none 就能达到目的。
 password-db 后的 passwd 则为定义用户名及密码的文件路径。
   当用show log 命令时候 会出现 'Item is not readable' 的问题解决办法
   在snvserve.conf设置 anon-access = none
5. 更改passwd文件
   这个文件默认跟 snvserve.conf 在同一个目录,下面看看怎么配置 passwd文件中的内容。
  [user]
  # harry = harryssecret
  # sally = sallyssecret
  harry 和 sally 这两行分别定义了可以对 repo 进行写入的用户的用户名和密码。我们可以在下面加上自己的用户名和密码,比如
  lamp = ethos   左侧是用户名 右侧是密码
  gongyu = gongyu
6. 更改auth文件,给用户访问svn某个目前的权限
  [groups]    先设定组,把用户分配到每个组中
  master = apacheplay1
  tester = apacheplay2

  [/]
  @master  rw
  @tester  r


  [apachesvn:/] 对每个物理路径进行组的权限控制
  @master = rw
  @tester = r
  
  [apachesvn:/onlymaster]
  @master = rw
  @tester = rw
7.  在linux中新增用户apacheplay1/apacheplay2
8.  在linux中新增用户组 apachegroup
9.  在linux中把用户apacheplay1/apacheplay2 分配到apachegroup 组中
10. 分别用apacheplay1/apacheplay2 登陆一次linux (注销系统,使配置生效) 让组权限起效
11. 把 /home/svn/apachesvn 文件夹的组权限变成 apachegroup 且属性为775
    sudo chgrp -R apachegroup apachesvn/
    sudo chmod -R 775 apachesvn/
12  出现错误:can't create directory '/svnroot/../svntest/db/transactions/-.txn':permission denied.  
    在commit是又出现commit failed错误。是由于创建svn项目时候,svn项目的所有者是root或者与之平级的用户
    所以项目的所有权必须包括root或者与之平级的用户
    例如: root用户在此系统中为 用户名(zgy) 密码(zgyzgy)
    解决   1. 把zgy 加入apachegroup组让zgy对apachesvn项目有所有权
           2. 直接更改apachesvn项目文件权限文件。 sudo chown -R zgy apachesvn/

   svn://192.168.1.25/apachesvn
   ---------------       

 要点
    1》把www-data 加入组A
    2》新svn项目属于新组A
    3》新svn项目属性为775
13. svn跟apache组合
    http://www.123shang.cn/blog/?p=53
    安装apache2的svn相关模块:
    sudo apt-get install libapache2-svn
    加载新模块后重启apache
    sudo /etc/init.d/apache2 restart
14. 在apache2.conf文件中加载项目资料
    <Location /apachesvn>
   DAV svn
   SVNPath /var/svn/apachesvn #Satisfy Any AuthzSVNAccessFile /etc/httpd/conf/svn_access_file
   AuthUserFile /etc/subversion/passwd
   AuthType Basic
   AuthName "Please use Username:'bjmedia', Password:'bjmedia' to read the repository if you do not have account."
   Require valid-user
  </Location>
  创建用户的密码文件
  sudo htpasswd -c /etc/subversion/passwd apacheplay1   //创建第一个用户
  sudo htpasswd -m /etc/subversion/passwd apacheplay1   //在第一个用户后创建第二个用户
  重启apache
  sudo /etc/init.d/apache2 restart

15. 把apache的用户加入到此svn项目可以访问的组和加入多个svn项目
    http://www.javaeye.com/topic/293540

    问题:出现权限不允许commit。是因为没有把apache用户加入svn项目权限中
    解决: ubuntu下通常是www-data这个。
    sudo gedit /etc/group     把www-data 加入组
  会看到group1:x:1000:user1,user2类似这样的信息,就是说user1,user2同属于group1,多个用户用逗号分隔。保存后记得注销系统,使配置生效。

  问题:若ip地址改变了,客户端svn项目已经下载了一部分,需要更改客户端的svn地址
  解决:下载最新版本(http://tortoisesvn.net/downloads)svn1.66。svn 右键setting->General->Context Menu->Relocate 打钩
        选择relocate 把checkout的ip变动一下 

  svn的url形如:    
  http://192.168.1.11/apachesvn
 问题: 若想取消客户端的当前用户信息可以如下操作
 解决: 可以在settings里头选择saved data,然后选择Authentication data后面的clear操作

 

16. svn+apache 同时支持多个svn库
    如果你想让dav支持多个svn repository库,那么把dav_svn.conf配置中的SVNPath元素注释掉,改用SVNParentPath   
  SVNParentPath /home/xxx/applications/svn_server/projects
  这样你就可以在/home/xxx/applications/svn_server/projects目录下建立多个svn repository,比如repo1,repo2,然后通过这样的方式来访问不同的库  
  http://localhost/svn/repo1
  http://localhost/svn/repo2
  实例:物理目录结构
  两个项目 home/svn/apachesvn 组权限 apachegroup  用户名apacheplay1 apacheplay2   
           home/svn/chinapay  组权限 master       用户名chinapay1   chinapay2
           (www-data在apachegroup和master中)
  1>
  apache.conf 编写   /etc/apache/apache.conf
  <Location />
   DAV svn
   SVNParentPath /home/svn
   AuthType Basic
   AuthName "apachesvn subversion repository"
   AuthUserFile /etc/subversion/passwd              //创建新文件 表明用户名密码 htpasswd 生成
   AuthzSVNAccessFile /etc/subversion/access        //创建新文件 表明用户组可访问的文件夹
   Require valid-user
  </Location>
  2>  用户名
  etc/subversion/passwd
  apacheplay1:$fdsafdr432
  apacheplay2:$fdsafdr432
  chinapay1:$fdsafdr432
  chinapay2:$fdsafdr432
  3>  访问权限
  etc/subversion/access
  [groups]
  master      = apacheplay1
  tester      = apacheplay2
  masterchina = chinapay1
  testerchina = chinapay2
  

  [/]
  @master  rw
  @tester  rw


  [apachesvn:/]
  @master  rw
  @tester  r
  
  [chinapay:/]
  @masterchina   = rw
  @testchina     = r
  
  [chinapay:/onlymaster]
  @masterchina  = rw
  @testerchina  = rw
--------------------------

windows下制作定时任务

自建bat批处理文件
windows下自动执行svn命令
1.下载另外版本svn
  http://www.sliksvn.com/en/download
  这个版本安装后
  C:\Program Files\SlikSvn\bin
  会有svn.exe文件
2. 我的电脑-》属性-》高级-》环境变量-》PATH
   把C:\Program Files\SlikSvn\bin 加入其中
3. 重启电脑,让path生效
4. 创建a.bat文件
   内容如下
   cd E:\phpwork\chinapaylinux
   svn update
5. 应用windows自带的'任务计划'
   新建任务-》任务的运行选择出a.bat
   设置循环时间 就可定时执行此文件


 

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有