设为首页 收藏本站
查看: 1351|回复: 0

[经验分享] Windows下的SVN服务器安装及配置

[复制链接]

尚未签到

发表于 2018-6-22 08:02:33 | 显示全部楼层 |阅读模式
  准备工作
  首先先下载Windows版本的SVN服务器(各位都会使用搜索引擎所以就不提供下载 地址了),这里我以svn-win32-1.4.3的ZIP解压缩版为例,将其解压缩到目标目录,例如我是解压到D盘下的Subversion目录,把 D:/Subversion/bin加到系统环境变量,如果你的解压位置与我不同,那么请按照你的实际路径设置环境变量。
  第一步:创建SVN数据库
  打开Windows命令提示符,执行命令svnadmin create F:/SVN,svnadmin create是创建SVN数据库的命令,F:/SVN是你的SVN数据库位置,这里我只是举个例子,你可以自己决定SVN数据库位置,执行完以上命令后就 会在F盘下多出一个SVN目录,里面有若干目录和文件,conf目录是用来存放权限配置的,后面会详细说明,dav目录用来提供给apache和 mod_dav_svn存储内部数据,db目录是所有版本控制的数据文件,hooks目录用来放置hook脚本文件,locks目录存放 Subversion文件库锁定数据,用来追踪存取文件库的客户端,format是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号,还有 个readme.txt不用说也知道是干什么的了。
  第二步:启动SVN服务器
  继续在Windows命令提示符里执行命令svnserve -d -r F:/SVN,参数-d是将SVN服务做为后台服务,参数-r是指定SVN服务的根目录位置,F:/SVN自然就是SVN根目录了,到这里为止SVN服务 器就已经启动了,可以用SVN客户端测试一下。
  第三步:将SVN服务注册为系统服务
  你可能会问这样岂不是每次启动SVN服务器都要输入一次命令?怎样才能让SVN服务器在开机的时候自动启动呢?答案就是将SVN服务注册到Windows系统服务,在Windows命令提示符里执行命令
  sc create SVN binpath= "/"d:/subversion/bin/svnserve.exe/" --service -r F:/SVN" displayname= "SVN Service" depend= Tcpip start= auto,这个命令是不是有点长?其实很容易理解,sc是Windows自带的系统服务注册工具,微软支持中心 提 供了详细的说明,这里我就不再复述了,参数binpath= "/"d:/subversion/bin/svnserve.exe/" --service -r F:/SVN"和我们前面手动启动SVN服务器的命令很像吧?只是把-d改成了--service,这不难理解,因为现在是服务嘛。好了,现在已经大功告 成了,重起一下试试吧。
  PS:如果想从系统服务里删除刚才注册的SVN服务可以使用sc delete SVN命令。
  第四步:设置权限
  各位都是做IT的,为研发中的项目设置合理的权限有多重要就不需要我说了,就拿开发游戏来说吧,程序部门需要有源代码目录的所有权限以及美术资源目录和 策划案目录的获取权限,美术部门需要有美术资源目录的所有权限以及策划案目录的获取权限,而策划部门则需要有策划案目录的所有权限及美术资源目录的获取权 限。接下去就来看看SVN是如何设置权限的,还记得第一步创建SVN数据库时提到的conf目录吧,conf目录里有3个文件,这3个都是文本文件,用计 事本打开它们就行了,我们先看svnserve.conf文件,anon-access项指定了未经验证的用户所具有的操作权限,它有3个有效值,分别是 read,write,none,read为读权限,write为写权限,none为没有任何权限,password-db项用来指定存放用户名和密码的 文件,authz-db项用来指定存放用户权限的文件,realm项用来指定验证范围,这项一般情况下用不到,以上4项默认都是被注释掉的.#号为注释 符,要起用它们只需要把注释符去掉即可。passwd文件是默认存放用户名和密码的文件,例如我设置一个Sol用户,密码为111111,只需在 [users]下添加Sol=111111即可,authz文件是默认指定存放用户权限的文件,[groups]代表分组,这里我们设置个 developer组,将前面创建的Sol用户分到developer组里,同样只需在[groups]下写上developer=Sol即可,[/]代 表根目录,如果我们要设置developer组有完全的访问权限就在下面加上@developer=rw,前面加@符代表组,除此之外我们允许所有人都有 读取权限还要在下面加上*=r,SVN允许对每个目录设置权限,设置方法和根目录差不多,如果到这里你还不是很明白那么请看下面的例子。
  一个权限配置的例子
  我们以游戏项目开发为例,项目名就叫Project1吧,怎么创建SVN数据库上面已经说过了,我们在SVN的根目录下创建一个名为Project1的 本地数据库,先配置conf目录下的svnserve.conf文件,我们不允许任何与研发无关的人员访问此项目,因此我们禁止匿名访问并为每个研发人员 创建个人帐号,权限文件和帐户信息文件用默认同目录下的authz文件和passwd文件就行了。
  svnserve.conf文件配置如下:
  [general]
  anon-access = none
  password-db = passwd
  authz-db = authz
  接下去配置passwd文件,为每个研发人员设置个人帐户,假设项目负责人是Sol,程序部门有Tom、Mark,美术部门有John、Alina、 Candice、Ellen,策划部门有Terry、Jane,这里我们为了方便将密码全部设置为000000,现在是例子没关系,实际应用的时候密码就 不能这么随便设置了。
  passwd文件配置如下:
  [users]
  Sol = 000000
  Tom = 000000
  Mark = 000000
  John = 000000
  Alina = 000000
  Candice = 000000
  Ellen = 000000
  Terry = 000000
  Jane = 000000
  帐户都创建好了,现在为他们分配不同的权限,先设置4个组.分别是manager 、developer、artist、designer,将Sol分配到manager组里,将Tom、Mark分配到developer组,将 John、Alina、Candice、Ellen分配到artist组,将Terry、Jane分配到designer组,等会我们会在项目中创建 designs、sources、resources、reports这4个目录,然后在reports目录里为每个人创建一个以自己帐户命名的目录用来 放每个人的工作报告,manager组拥有所有目录的读写权限,developer组拥有sources目录的读写权限以及designs和 resources目录的读取权限,artist组拥有resources目录的读写权限以及designs目录的读取权限,designer组拥有 designs目录的读写权限以及resources目录的读取权限,每个帐户都拥有reports目录下以自己帐户命名的目录的读写权限,也就是说每个 人的工作报告只有自己和项目负责人能看到。
  authz文件配置如下:
  [groups]
  manager = Sol
  developer = Tom,Mark
  artist = John,Alina,Candice,Ellen
  designer = Terry,Jane
  [Project1:/]
  @manager = rw
  * = r
  [Project1:/designs]
  @manager = rw
  @developer = r
  @artist = r
  @designer = rw
  * =
  [Project1:/sources]
  @manager = rw
  @developer = rw
  * =
  [Project1:/resources]
  @manager = rw
  @developer = r
  @artist = rw
  @designer = r
  * =
  [Project1:/reports/Sol]
  Sol = rw
  * =
  [Project1:/reports/Tom]
  @manager = rw
  Tom = rw
  * =
  [Project1:/reports/Mark]
  @manager = rw
  Mark = rw
  * =
  [Project1:/reports/John]
  @manager = rw
  John = rw
  * =
  [Project1:/reports/Alina]
  @manager = rw
  Alina = rw
  * =
  [Project1:/reports/Candice]
  @manager = rw
  Candice = rw
  * =
  [Project1:/reports/Ellen]
  @manager = rw
  Ellen = rw
  * =
  [Project1:/reports/Terry]
  @manager = rw
  Terry = rw
  * =
  [Project1:/reports/Jane]
  @manager = rw
  Jane = rw
  * =
  目录的权限都设置完了,但是目录我们还没有创建,现在只有项目负责人才有权限在项目根目录下创建目录,所以我们用Sol的帐户来创建designs、 reports、resources、sources这4个目录,然后再到reports目录里为每个人创建以各自帐户命名的工作报告目录,好了,到这里 就全部搞定了,收工。
  转自:http://grindelwald.iteye.com/blog/249797

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-528942-1-1.html 上篇帖子: Linux挂载Windows文件系统 下篇帖子: Java windows中设置文件只读
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表