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

[经验分享] 使用svn和apache打造版本控制服务器

[复制链接]

尚未签到

发表于 2018-11-21 09:46:10 | 显示全部楼层 |阅读模式
  1.安装svn-1.4.4-setup.exe
2.创建一个目录作为版本仓库:如c:\snv
3.对版本仓库目录进行初始化:svnadmin create c:\svn
4.启动版本服务器:svnserve -d -r c:\svn
5.将文件夹导入到版本仓库中去(d:\test 目录中):svn import svn://localhost
需要建立环境变量:SVN_EDITOR notepad
或者svn import svn://localhost -f -c:\log.log 日志文件
6.认证失败?
在c:\svn\conf\svnserve.conf 修改配置(默认是匿名用户只有read)
anon-access = read 下面加入一行
anon-access = write
ok了 重启服务 再次提交ok
7.我们在版本仓库中创建一个虚拟目录project2
svn mkdir svn://localhost/project2
8.我们再次提交一个文件夹放置在版本服务的虚拟目录project2中(d:\test2 目录中 包含test。txt)
svn import svn://localhost/project2
9.从svn中检出project2(d:\checkout 中)
svn checkout svn://localhost/project2
10.修改test.txt内容 并提交:svn commit test.txt
11.如果文件锁定 可以用 svn cleanup 命令解锁
12.删除test.txt 通过update命令重新获取:svn update test.txt
svn 权限
13.我们希望可以掌控svn的权限
anon-access = read
anon-access = write
   注释掉。这样就不可以匿名修改了,不过还是可以匿名检出。因为svn默认是允许匿名检出的
我们新增一个anon-access = none 这样匿名检出也禁止了
14.我们添加认证用户
   将password-db = passwd 的注释取消
   打开conf下的passwd文件
   [users]
   # harry = harryssecret
   # sally = sallyssecret
   按此格式分别键入用户 = 密码即可
svn+apache
svn的权限确实不敢恭维,现在我们将svn和apache进行整合
分别下载svn对应的apache版本
1.apache的安装 一路next即可
2.将svn安装目录bin下的mod_dav_svn.so,mod_authz_svn.so文件 复制到apache目录下的modules下
修改httpd.conf文件,我这里是145,146行的注释去掉
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
3.在173行增加我们复制的文件载入
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
4.在文件结尾增加我们的目录映射

DAV svn
SVNPath c:/svn

5.重启apache 我们就可以通过:http://localhost/svn 浏览访问版本库了(不过没有任何限制)
6.我们需要在配置验证信息

DAV svn
SVNPath c:/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile c:/passwords
Require valid-user

AuthType表示验证类型,这里我们采用BASIC即基本方式,也是最常用的验证方式。
AuthName表示出现登录对话框时,窗口的标题名。
AuthUserFile表示用户登录信息的存放文件,这里我们将该文件保存为E:/passwd/passwords,目前该文件还不存在,不过不要着急,我们稍后就会创建该文件。
Require valid-user 表示只有认证的用户才能访问,否则匿名用户也可以访问。
7.我们创建登陆信息文件
apache bin目录下的工具 htpasswd.exe
创建文件 并建立一个用户
htpasswd –c c:\passwords user1
会让你输入密码 采用的md5加密
htpasswd c:\passwords user2
密码采用明文
htpasswd -p c:\passwords user3
8.重启apache服务,我们访问和浏览需要输入用户和密码了
也可以使用svn工具进行管理 不过协议变成http了而不是svn了

9.多版本库管理,我们将之前的 SVNPath c:/svn 修改为 SVNParentPath c:\svn
更改后已经无法浏览仓库内容了,
这是因为之前创建的仓库都是以svn为根路径的,所以一旦将它改成ParentPath后就无法正常访问了。
实际应用中,我们要import一个项目到SVN上,一般都不会import到根目录中,而是import到项目特定的目录中,
这样当从SVN中检出时我们也只会检出特定的项目,而不是将SVN中所有的项目全部检出来,因为仓库中可能有很多个其他项目。
10.我们在svn目录下创建两个目录myproject1。myproject2
svnadmin create c:/svn/myproject1
svnadmin create c:/svn/myproject2
采用SVNParentPath方式,新建仓库时也并不需要重启Apache服务器,
因为SVNParentPath指定的路径就是仓库的父目录,我们可以通过浏览器查看刚才import的项目。
这里注意地址:http://localhost/svn/project1,如果输入http://localhost/svn,则无权限访问,因为默认情况下我们只能访问其中的子仓库。
11.如何允许匿名用户读取
httpd.conf中的Require valid-user改为如下:

Require valid-user

12.我们需要更细致的权限设置,
SVN仓库中有很多的子仓库,每个子仓库中又有很多目录和文件,那么我需要配置以便使某些用户可以访问某些仓库,
即可以读写;而另外一些用户只能读不能写,不过这两种类型的用户都需要输入认证信息方能进行操作
将httpd.conf内容修改为

DAV svn
SVNParentPath C:\svn
AuthzSVNAccessFile C:/policy
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile C:/passwords
Require valid-user

policy文件内容为权限信息 如下
[project1:/]
user1=rw
user2=r
user3=
对于project1路径,user1用户可读可写,而user2用户只读,另外的用户user3不能读也不能写。这就定义了SVN仓库的访问策略。
这里也可以通过分组进行定义 如下
[groups]
developers=user1,user2
testers=user3
[project1:/]
@developers=rw
@testers=
[project2:/]
@developers=rw
@testers=rw
13.备份版本库
svnadmin hotcopy C:\svn E:\backup




运维网声明 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-637619-1-1.html 上篇帖子: Apache Spark入门攻略 下篇帖子: Apache access.log error.log日志文件太大优化方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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