当前位置: 首页 > news >正文

SVN 版本管理

一、Subversion的下载与安装
Subversion的官方网站:http://subversion.tigris.org/
可以在官方网站上下载Subversion的最新版本。本说明使用的是1.1.4的Win32版。
下载下来Subversion安装文件后,直接安装就可以了。这里假设系统上已经安装好了Apache了,这样,Subversion安装的时候选择Apache方式,它就会自动的配置相关的模块到Apache里。

二、Subversion的建立与使用仓库使用。
$svnadmin create /path/to/repos
在这里,我们假设设置D盘svn目录下的svn1和svn2两个目录为仓库。
svnadmin create d:/svn/svn1
svnadmin create d:/svn/svn2
这样,我们使用的时候,就可以向里面提交文件。
仓库的使用,必须先把服务搭建起来才行。我们等后面的服务器配置后再讲。

三、Subversion服务器的搭建
我们使用与Apache模块的方式运行。
首先,把我们需要的SVN模块加载上,修改Apache的配置文件httpd.conf:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule dav_module modules/mod_dav.so
LoadModule authz_svn_module modules/mod_authz_svn.so

然后配置仓库:

<Location /svn>
DAV svn
SVNParentPath d:/svn
</Location>
然后,配置验证方式:
这里使用旦Apache的验证方式:

htpasswd -cm d:/svn/svn-auth-file user1
然后,会提示输入密码,这里就加入了一个用户了。然后再加一个用户:
htpasswd -m d:/svn/svn-auth-file user2

然后修改配置:
<Location /svn>
DAV svn
SVNParentPath d:/svn
AuthType Basic
AuthName “Subversion repository”
AuthUserFile d:/svn/svn-auth-file
Require valid-user
AuthzSVNAccessFile d:/svn/svn-access-file
</Location>
下面,就要写这个svn-access-file文件了,它是用来控制用户访问仓库的权限的,我们把说明写在后面
[svn1:/] //这表示,仓库svn1的根目录下的访问权限
harry = rw // svn1仓库harry用户具有读和写权限
sally = r // svn1仓库sally用户具有读权限
[svn2:/] //svn2仓库根目录下的访问权限
harry = r // harry用户在svn2仓库根目录下只有读权限
sally = // sally用户在 svn2仓库根目录下无任何权限
#[/] // 这个表示在所有仓库的根目录下
#* = r // 这个表示对所有的用户都具有读权限
#[groups] // 这个表示群组设置
#svn1-developers = harry, sally // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]
#@svn1-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置

转自http://www.builder.com.cn/

相关文章:

  • Win32 OpenGL系列专题
  • Nebula3 SDK Nov 2009 更新内容
  • iPhone 多线程编程
  • 面试中如何自我介绍如何回答我的优缺点
  • [常见问题]iPhone NSURLConnection delegate methods得不到调用
  • 内容管理系统(CMS)
  • 钱学森最后一次系统谈话:大学要有创新精神
  • 《程序员羊皮卷》走进Tech•Ed2009
  • 《程序员羊皮卷》走进Tech?Ed2009
  • Mondrian系列(三)-如何设计Mondrian的Schema(1)
  • 三大运营商的应用商店之路
  • OpenSSL介绍
  • 在Windows下编译OpenSSL(VS2005)【转】
  • 柏林墙倒塌20年纪念
  • 关于安装IBM的TDS的错误“error opening toollibs.cat”解决方法
  • JavaScript-如何实现克隆(clone)函数
  • 【5+】跨webview多页面 触发事件(二)
  • Akka系列(七):Actor持久化之Akka persistence
  • AWS实战 - 利用IAM对S3做访问控制
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Git初体验
  • Hibernate最全面试题
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • ReactNative开发常用的三方模块
  • Vue全家桶实现一个Web App
  • Zsh 开发指南(第十四篇 文件读写)
  • 关于使用markdown的方法(引自CSDN教程)
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 微信开放平台全网发布【失败】的几点排查方法
  • 原生Ajax
  • ​2020 年大前端技术趋势解读
  • ​业务双活的数据切换思路设计(下)
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #define 用法
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (接口封装)
  • (接口自动化)Python3操作MySQL数据库
  • (十八)三元表达式和列表解析
  • (转)用.Net的File控件上传文件的解决方案
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .net反编译的九款神器
  • .net连接MySQL的方法
  • .NET正则基础之——正则委托
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • /*在DataTable中更新、删除数据*/
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [Android]通过PhoneLookup读取所有电话号码
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [BZOJ]4817: [Sdoi2017]树点涂色