loyalxuan 发表于 2018-6-13 08:59:35

终极SVN在windows下的配置

1 前言
这段时间有点空,闲着也无聊,所以就弄弄这个SVN。在做服务之前,我还是重申我的观点:
一.         最后一点是,做技术,尽量的要自己动手去做,光靠嘴说会做,是不行的。并且在做的时候,出现的问题越多,对你是有好处的。

2 关于Subversion
Subversion 是一个版本控制系统,它是根据 CVS(Concurrent Versions System)的功能为基础来设计,但是改进了一些 CVS 的缺点,例如:在 CVS 中移动文件目录很不方便;此外,它也增加了其他的功能,例如:不可分割的送交(如同资料库交易的概念,送交多个文件时,若有任何一个文件失败,则这次送交的所有文件都不会进入文件库中),支援多种网络协议,一致的文件差异比对(不管什么文件类型,均使用二进位差异比对方式),等等。
在做这个服务的时候,我也查了网上的一些资料,不是很完整的。而且在LIUNX环境下的比较多,所以我做这个服务也用的时间有点长,希望此文可以给初学者一些帮助。



3 服务所需软件:

系统平台: windows server 2003 企业版
Apache: http://httpd.apache.org/download.cgi(Apache_2.0.63-win32-x86-no_ssl.msi)
Subversion: http://subversion.tigris.org/getting.html#windows(
Setup-Subversion-1.5.1.en-us.msi


TortoiseSVN:http://tortoisesvn.tigris.org(TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi)

4 安装 Apache server:

警告:请注意,没安装Service Pack 1的Windows XP将导致错误的网络数据从而破坏你的版本库!

从http://httpd.apache.org/download.cgi 最新版本的Apache Web服务器。确保你下载的版本大于2.0.54。2.0.54版本的Apache将不能与Subversion 1.3.xx配合工作。而且,小

于2.0.54的Apache也因为在windows上的编译存在一个bug而导致不能与subversion1.2配合使用。

一旦你已经有了Apache2的安装程序,你可以双击它,它将引导你完成整个安装过程。请确保你输入正确的服务器URL(如果你的服务器没有DNS名称,你可以直接输入IP地址)。我

建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下

的Apache Group/Apache2/conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不用的端口,比如Listen 81。然后重新运行这个安装程序,这次应该不会再有问题了。

现在你可以在你的浏览器中键入 http://loccalhost,如果呈现了一个已经配置好的网站,那么你的Apache就安装成功了。

警告:

如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。

请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。要不然,用户将无法提交他们的更改。

就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。

如果没有为Apache配置这个许可,用户将会得到"禁止访问"的错误信息,在Apache的错误日志中表现为错误500。








OK ! apache 安装完成!


5. 安装 Subversion

一.E:/Program Files/Subversion/bin目录下的     把libeay32.dll、以及 bin 中。
用文本编辑器打开 Apache Server 的E:/Program Files/Apache Group/Apache2/conf/httpd.conf,寻找一堆LoadModule 指令,先找到以下两行:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把这两行最前面的 LoadModule dav_svn_module modules/mod_dav_svn.so
ApacheServer

5.1设定 SVNPath 与
DAV svn
"/svn/repos_name" 就是用户端存取特定文件库的 SVNPath 后面指定的路径则是文件库的绝对路径,假设我们的文件库实际存放的路径是URL 来存取文件库,那么要加入 DAV svn
Location 标签后面的
如果你的文件库都集中放在某个目录之下,例如:<Location /svn>
</Location>
其中的 httpd.conf 的内容就是:
SVNParentPath E:/svn
> 的方式,存取位于 SVNParentPath 来统一指定所有文件库的父层 httpd.conf 文件尾部就行了。
接下来就可以在 http://localhost/svn/repository,看看能不能看到文件库的内容,正常的话应该像下图一样。
如:


7引入项目测试
假设我们现在有一个测试项目,项目目录位于 branches

svn 命令时,都是使用 Apache HTTP Server 的设定无誤,其他人就可以透过 file 协议,则该指令要变成:
E:\svn\repository\db\revs\0目录下多了一个叫md d:\svn
ProjectA 的目录结构。在 branches、和 mainline);
• 一.httpd.conf 的     SVNParentPath E:/svn
# The following is Basic authentication setting
</Location>
:
Subversion版本库DAV svn:告诉Subversion模块SVNParentPath E:\SVN:告诉
.
AuthUserFile E:\passwd.txt:指定
.
E:\svnaccessfile.txt来限定各个用户或组在版本库中目录的访问权限Require valid-user:限定用户只有输入正确的用户名及密码后才能访问这个路径httpd.conf中写多个
四.用Apache的htpasswd指令生成用户名和密码:

htpasswd -cm E:/svn/passwd.txt user1
htpasswd -m E:/svn/passwd.txt user2
htpasswd的参数-c是创建文件的意思,故只在首次使用,仅使用-m参数时也可用来修改密码。

进入: E:\Program Files\Apache Group\Apache2\bin



五:配置文件库访问政策文件

在E:\svn建立一个accessfile.txt

内容如下:

       (文件库repository中所有的文件)
user1 = rw            (用户user1为读写权限)
(文件库repository中projectA 项目文件)
user2 = r


* = r

小节名称中冒号前面的文件库名称不要轻易省略,省略就代表是针对所有文件库,这样是很为危险的,

Subversion密码,也很简单,有人已经把你做了相关工作了,可访问passwd.cgi及cgi-bin子目录中,然后修改配置文件AuthUserFile的全路径(比如”),这时用户就可以访问9.1 安装 . 到 . 到 TSVN 版本相同,否则最好不要安装。语言包装完之后,用资源管理器在"Main" 页夹中更改 )」,再按「确定」钮即可。
三Internet,请在 Internet 上的文件库。
安装完成之后,在任何目录名称上点一下滑鼠右键都可以看到 TSVN 来存取文件库。如果你希望在Beyond Compare后,在任意目录点鼠标右键,进入BC2.exe的路径即可。



接下来你可以用 TSVN 虽然是客户端工具,不过它也提供了建立文件库、以及引入、引出等功能,因此安装在服务器端也挺方便的。
这里顺便提几个客户端提交修改点时的注意事项:
&#1048698; 要保证本地编译通过后方可提交,否则会导致其他人取下新版本后编译不过。
&#1048698; 要一次性全部提交,即在项目的根目录下按右键选Patch提取,版本比较等。如果是修改了一个ID号和简单描述写到Merge修改点

10设置Subversion随系统启动:
在命令行执行
svnserve --daemon --root E:\svn
服务启动,--daemon可简写为-d,--root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务(注意:这是临时打开的服务,命令执行后不能关闭窗口)
用后台服务的方式可以设置开机自动执行。
E:\Program Files\Subversion\bin>sc create svnservice binpath= "E:\Program Files\Subversion\bin\svnserve.exe --service -r E:\SVN"
可以在Sevices.msc来启动了。



页: [1]
查看完整版本: 终极SVN在windows下的配置