其实这文章是两三个月前写的,一直没有放上来,这段时间正好又换了配置服务器,所以才拿出来.
这几天一直在找一个能与vs.net2003相结合的源代码管理工具,几乎试用过所有的大部分工具,难者难,易则简,今天准备安装subversion试试
1.  转到http://httpd.apache.org/download.cgi
2.  下载 apache_2.0.53-win32-x86-no_ssl.msi
3.  转到http://subversion.tigris.org  下载svn-1.1.3-setup.exe
4.  转到http://tortoisesvn.tigris.org/下载TortoiseSVN-1.1.3-UNICODE_svn-1.1.3.msi
二 安装
1.先安装Apache,如果你的IIS已经占用80端口,则在安装的时间请使用8080口,不过这个版本好像是自动选择,为安全起见,还是自己手动选择一下,避免冲突。假如我们选择8080端口,安装完后请打开http://127.0.0.1:8080如果安装成功的话,您将看到欢迎页。否则请检查安装是否正确.
2.接着安装svn-1.1.3-setup.exe,这个版本可以选择是否要在apache的模块中自动配置,请选择自动配置。这样的话就不用手动修改配置文件了。
不然的话要进行以下手动配置 
1.      把 <Subversion_root>/httpd/目录下的 mod_dav_svn.so 和 mod_authz_svn.so Copy到 <Apache_root>/modules/ 目录下。
2.      把 <Subversion_root>/bin/ 目录下的 libdb42.dll、libeay32.dll、以及 ssleay32.dll Copy到 <Apache_root> 底下的 bin 或 modules文件夹。
3.      接着用记事本打开Apache HTTP Server 的 httpd.conf(在 <Apache_root>/conf/ 目录下),找到 LoadModule 指令,先找到以下兩行:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把前面的 '#' 字元刪除,然后把下面几行文字加到这群 LoadModule 指令的后面:LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
4.      重新启动 Apache HTTP Server。

注意:按理说,在配置apache的时候,如果80已经被IIS占了,我们选定8080口,但是这样反而不行,怎么办? 没关系按apache选80口,它会自动避开的80而选择8080的,这点很奇怪J
3.设置subversion的仓库路径 
l         设置URL路径 SVNPath
其语法是:
<Location /svn/repos_name>
DAV svn
SVNPath /absolute/path/to/repository
</Location>
其中 "/svn/repos_name" 就是客户端存取特定档案库的 URI(Uniform Resource Indentifier),SVNPath 后面指定的路径则是档案库的绝对路径,假设我们的档案库实际存放的路径是 d:/svn/MyProject,并且希望客户端使用 "http://myserver/svn/myprj" 的 URL 来存取档案库,那么要加入 httpd.conf 的内容就是:
<Location /svn/myprj>
DAV svn
SVNPath d:/svn/MyProject
</Location>
注意 Location 标签后面的 /svn/myprj 的第一个斜线不可少!
现在要设定 URL 路径与档案库实体路径的对应关系。对应的方式有两种,分别是与
l         设置仓库物理路径 SVNParentPath。 
如果你的档案库都集中放在某个目录之下,例如:d:/svn,那你就可以使用 SVNParentPath 的方式指定档案库的根路径,例如:
<Location /svn>
DAV svn
SVNParentPath d:/svn
</Location>
这表示可以让任何人都可以透过 http://myserver/svn/<档案库名称> 的方式,存取位于 d:/svn 这个目录以下的所有档案库。也就是说,这个设定动作只需要一次,如果使用 SVNPath,你必须为各个档案库分别指定对应的路径。
以上两种设定方式都可以,方便起见,这里我用 SVNParentPath 来统一指定所有档案库的父层 URL 路径。
将 <Location> 的设定加到 Apache HTTP Server 的 httpd.conf 檔尾就行了。
接着便可以开始建立档案库。
三 建立档案库
假设我们要把所有的档案库都放在 d:/svn 目录下,现在要建立一个测试用的档案库,名称叫做 在 repository,指令为:
md d:/svn
svnadmin create d:/svn/repository
命令执行完后,检查看看 d:/svn/repository 目录底下产生了哪些目录和档案。
一般有如下目录
这时候你已经建立了一个档案库,你可以先在本机用浏览器测试一下,网址输入 http://localhost:8080/svn/repository/,看看能不能看到档案库的内容.
四 存入仓库
我们先测试一下这仓库是否成功,先建立以下目录结构
c:
cd temp
md ProjectA
md ProjectA/trunk
md ProjectA/branches
md ProjectA/tags
svn import . http://localhost/svn/repository -m "Initial repository layout"
提示
本文在执行 svn 命令时,都是使用 http 协议的方式,这样我们可以确知 Subversion 与 Apache HTTP Server 的设定无误,其它人就可以透过 Internet 存取档案库。当然你也可以用其它的协议,例如:file:///,如果使用 file 协议,最后一行指令就变成:
svn import . file:///d:/svn/repository -m "Initial repository layout"

项目的目录结构
这里补充说明一下 ProjectA 的目录结构。在 ProjectA 项目的根目录下建立的 trunk、branches、和 tags 这三个目录是有特别意义的,它们的作用分别是:
trunk 目录用来存份目前项目正在进行开发的程序档案和文件(又称为主线,即 mainline);
branches 用来存放主线的各个仍在发展中的分支;
tags 则用来存放已经不再变动的分支,也就是其中的档案不会再修改了。
这是 Subverion 官方手册建议的目录结构安排方式,你可以自己决定要不要用这种配置方式,详细说明请参考官方手册的第五章,子标题为 "Choosing a Repository Layout"。
补充
Subversion具有两种服务模式,一个是作为Apache的模块,另一个是自定义协议的Subserve服务。
作为Apache的模块,客户端可以通过WebDAV/DeltaV协议访问Repository,而使用Subserve则使用
Subversion的自定义协议。
下表是两种服务模式的比较:
功能
Apache + mod_dav_sub
Svnserve
验证方式
基于HTTPS的X.509、LDAP、NTLM或其他Apache支持的验证
CRAM-MD5或者SSH
用户帐户管理
私有的用户文件
私有的用户文件或已有的系统帐户
授权管理
blanket read/write access或单一目录的访问控制
blanket read/write access
加密
可选的SSL
可选的SSH隧道
交互性
可通过支持WebDAV的客户端访问
无交互性
Web访问
有限的内置支持,或通过第三方的工具,例如ViewCVS
通过第三方的支持,如ViewCVS
速度
稍慢
稍快
初始安装
稍复杂
相当简单
使用 Windows 网域账户验证
照着前面的步骤做,你会发现存取档案库时都不用输入账号密码,这是因为我们之前的设定没有启用身分验证的功能。但是我们通常不希望所有人都能任意存取你的档案库,免得重要资产外泄,或者数据被破坏,因此了解如何加入身分验证也是必要的。
Serversion 提供了多种验证使用者身份的方式,这里只介绍 Windows 身分验证的方式,这种方式很适合用在开发团队成员都在局域网络内的情况。请依下列步骤进行:
取得 SSPI 模块,下载网址为 http://tortoisesvn.tigris.org/mod_auth_sspi.zip。
把 zip 里面的 mod_auth_sspi.so 解压缩到 <Apache_root>\modules 目录下。
把下面这行加入到 Apache 的 httpd.conf 里面:
LoadModule sspi_auth_module modules/mod_auth_sspi.so
注意上面加入的这行一定要放在下面这行的前面:
LoadModule auth_module modules/mod_auth.so
修改 httpd.conf 的 <Location> 设定如下:
<Location /svn>
DAV svn
SVNParentPath d:/svn
AuthType SSPI
AuthName "Subversion 档案库"
Require valid-user
SSPIAuth On
SSPIAuthoritative On
SSPIDomain <domaincontroller>
SSPIOfferBasic On
</Location>
其中 <domaincontroller> 就是你的 Windows 域控制器的计算机名称(例如:WIN2KDC),注意两边的括号 <> 不用保留。如果你的环境没有域控制器,就维持原来的 <domaincontroller> 就行了。在我的环境下,我发现即使有域控制器,但是这里不去设定它,还是能够正常的验证使用者身分。
 
重新启动 Apache。
七 采用文件方式进行身份验证
 
此处也可以用mysql,passwd文件,LDAP等其他任何Apache支持的验证方式。
此处我采用文件方式,首先建立一个保存密码的文件,如果不需要对密码加密,可增加-p参数生成plain text。
%APACHE_HOME%\bin\htpasswd –c -p d:\passwd\passwords user1 12345执行后会提示您输入密码,这样就在文件passwords里生成一个用户名为user1的用户,
生成的文件内容如下:
#格式username:password
user1:123456
例子:
Repository存放在D:\repository下,有两个repository: test and xtest
每个repostory 的结构相同:
根:01.txt
02.txt
folder1-: 11.txt
12.txt
folder 2-: 21.txt
22.txt
对目录1和2作不同的读写权限控制
Basic Authentication
修改文件:
Httpd.conf:
#Basic authentication
<Location /repository>
DAV svn
SVNParentPath d:/repository
AuthzSVNAccessFile d:/repository/accessfile                
Require valid-user
AuthType Basic
AuthName "身份验证"
AuthUserFile d:/repository/passwd                  
</Location>

用Apache的htpasswd生成用户名和密码,
Htpasswd –c passwd username
第二次不用 –c。
生成的用户名和密码在passwd中:
0:$apr1$Vu5.....$XZ/csz/2YKoPNKpb88O5p0
1:$apr1$vu5.....$I1VwMJ7JtRmpmJjVUlT4h1
2:$apr1$Dv5.....$vf2MTg/p0mY.WcFhx7wET1
3:$apr1$Tv5.....$gfk4AiP49h0JjKN8BuJdB.
AuthzSVNAccessFile控制每个目录的读写权限
[test:/]
1 = r
2 = r
3 = r
[test:/1]
1 = rw
[test:/2]
2 = rw
在客户端,用http://server/repository/test可以访问。也可以直接进入子目录访问:http://server/repository/test/1,http://server/repository/test/2。系统会要求进行认证。例如用户1对目录1有读写权限,可以commit修改,但对目录2所作的修改就不能commit。
SSPI认证。
按上一种方式,用户更换一次密码,就必须修改一次密码文件。用SSPI认证则可以没有这个问题。
Httpd.conf文件:
#SSPI authentication
<Location /repository>
DAV svn
SVNParentPath d:/repository
AuthzSVNAccessFile d:/repository/accessfilesspi               
Require valid-user
AuthType SSPI
AuthName "Subversion repositories"
# SSPI settings
SSPIAuth On
SSPIAuthoritative On
# point to domaincontroller
SSPIDomain domain.com.cn
SSPIOfferBasic On
</Location>
控制文件AuthzSVNAccessFile要作相应的修改:
[test:/]
domain\user1 = r
domain\administrator = r
[test:/1]
domain\user1 = rw
[test:/2]
domain\user1 =
domain\administrator = rw
在tortoiseSVN使用时,会提示认证,填写用户名和密码即可。
如果要按照Group的方式来控制权限,可同时建立一个groups文件,内容如下:
#格式:GroupName: username1 username2
svngroup: user1 user2  
在httpd.conf中的/svn处增加权限控制部分: 
<Location /svn>
DAV svn
# 指向SVN Repository的ROOT
SVNPath d:/svnrepo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile d:/passwd/passwords
AuthGroupFile d:/passwd/groups
Require group svngroup
</Location>
重起服务器,浏览http://localhost/svn,出现安全对话框,输入用户名密码即可成功。  

转载于:https://www.cnblogs.com/supercode/archive/2005/06/13/173516.html

VS 2003 源码配置管理(subversion+apache)相关推荐

  1. Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...

  2. linux源码编译安装apache( httpd-2.4.53)处理服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)

    linux源码编译安装apache 首先我们需要下载相关的依赖包 apr.apr-util.pcre 下载地址 http://archive.apache.org/dist/apr/apr-1.7.0 ...

  3. apache 编译php mysql_记一次痛苦的过程-------源码编译安装apache+php5+mysql

    当时有我们准备做一个项目,于是我就自己搭建了lamp服务器,直接yum install所有文件,因为centos是一个比较稳重的系统,所以它上面所有软件都不是最新的,apache是2.2.15版本,p ...

  4. 【Ubuntu 16】源码包安装Apache Httpd

    源码包安装适合初学者使用. 背景信息 APR (Apache Portable Runtime) Apache可移植运行的任务(APR)项目是创建和维护软件库,为底层平台的具体实现提供了一个可预见的和 ...

  5. linux apache压缩包安装目录,源码包安装Apache服务

    1.安装development tools程序包组 安装Apache服务器前需要解决依赖性问题,比如需要安装GCC.GCC++.OPENSSL等等,因为是在虚拟机里做实验,这里就通过直接安装包组的方法 ...

  6. Linux源码编译安装apache httpd2.4.48

    Apache httpd httpd是Apache基金会的HTTP服务器项目:HTTP Server project httpd-2.4系列本版,依赖于apr-1.4+, apr-util-1.4+ ...

  7. linux httpd 源码包下载,Apache httpd-2.4.33源码包编译安装教程

    实验环境:centos6.5 防火墙需要关闭 下载源码包 wget http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz wget http ...

  8. 源码安装的Apache启动时报错:“Could not reliably determine the server‘s fully qualified domain name”

    源码包安装时总是会遇到各种各样的报错,作为我这种新手小白来说,很是头疼. 解决:报错的问题因人而异,不一定每一个报错处理方案都一样,还是要分析自己安装时的步骤预配置 (1)进入Apache的安装目录, ...

  9. CentOS 6.3 源码编译安装Apache

    一:Apache的简介 Apache HTTP Server(简称Apache)它是世界上使用排名第一的Web服务器开源软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用 ...

最新文章

  1. Tengine MLOps概述
  2. Linux 内存映射函数 mmap()函数笔记
  3. TCP/IP 总结一
  4. CoderForces Round54 (A~E)
  5. 数据级并行--计算机体系结构
  6. 三维重建面试0:*SLAM滤波方法的串联综述
  7. 网络学习(十二)文本模式安装Red Hat Linux 9
  8. hdu 4091 线性规划
  9. 你与数据科学家只差这26条python技巧
  10. 什么是13薪,真的有18薪、25薪的不?
  11. mysql 启动 内存_mysql启动内存的疑问
  12. mysql从挂了数据怎么恢复_详解MySQL误操作后怎样进行数据恢复
  13. 你用Deepfakes给小电影换个脸,人脸识别AI也看不出来:95%萌混过关
  14. Numpy的广播功能
  15. 大快搜索获评“2018中国大数据基础软件领域领军企业”
  16. 26期20180718 rsync
  17. spring事务的传播属性和事务隔离级别及配置事务(注解方式)
  18. “身体质量指数BMI”实例详解
  19. 国科大五位本科生带“芯”毕业!平均年龄23.1岁,四个月主导完成64位RISC-V处理器SoC芯片设计并实现流片
  20. Ubuntu20.4环境下,Android11(R)源码,下载,编译,Pixel4刷机

热门文章

  1. 解决403跨域问题之——————JSONP
  2. validate插件深入学习-01 小白从看透一个插件开始
  3. StructureMap 代码分析之Widget 之Registry 分析 (1)
  4. dell support
  5. 如何给上传控件上色【HOW TO SET CSS FOR THE CONTROL OF FILEUPLOAD】
  6. 注意了,又有企业因BTC费用高转向BCH
  7. Zookeeper之javaAPI的使用
  8. kubernetes 1.14安装部署helm插件
  9. Parasoft、SmartBear和Gimpel Software测试分析类产品对比评测
  10. RxJS - Observables, observers 和 operators 简介