一般我们只需要在服务器端安装subversion,在客户端安装TortoiseSVN和中文包即可,若结合.net,再然后在客户端安装VisualSVN-1.3.2.msi,。最后用VisualSVN.Core.dll覆盖下刚才上面的安装文件就行。
服务器端Subversion
Subversion是一个自由/开源版本控制系统,和VSS相比,它的特点有:
·采用复制-修改-合并模型
允许多人同时编辑一个文件,在提交的时候,有服务器进行合并,发生冲突的时候需要手工解决。
·目录结构纳入版本控制
支持目录结构的修改和文件改名等操作,并且这些操作都将进行版本管理。
·原子提交
一系列的改动,要么全部提交到版本库,要么一个也不提交,这样可以让用户构建一个所要提交修改的逻辑块,防止部分修改提交到版本库。
·可选的网络层
Subversion可以作为一个扩展模块与Apache结合,这给了Subversion在稳定性和交互性方面很大的好处,可以直接使用服务器的特性—认证、授权和传输压缩等等。也有一个轻型的,单独运行的Subversion服务,这个服务使用自己的协议可以轻松的用SSH封装。
·有效率的分支和标签
分支与标签的代价不与工程的大小成比例,Subversion建立分支与标签时只是拷贝整个工程,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间。
·多种存储方式
Subversion可以采用数据库进行代码的存储,也可以使用文件存储。
·更有效的处理二进制文件
只记录变化的部分,使得Subversion处理二进制文件更加有效。
·……
资源
Subversion服务器端:http://subversion.tigris.org/files/documents/15/31465/svn-1.3.1-setup.exe
安装
执行安装包,不需要特别的修改,假设安装在“C:/Program Files/Subversion”
配置
1. 确认环境变量
安装会自动在系统环境变量的Path变量中加入“C:/Program Files/Subversion/bin”,如不存在请手工编辑。
2. 建立一个源代码仓库
在windows控制台中运行“svnadmin create d:/data/subversion”,这样就会在指定的目录中建立代码仓库。
3. 设置全局访问权限
进入代码仓库的conf文件夹(d:/data/subversion/conf),编辑其中的svnserve.conf文件
[general] ### These options control access to the repository for unauthenticated ### and authenticated users. Valid values are "write", "read", ### and "none". The sample settings below are the defaults. # anon-access = read # auth-access = write ### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file's location is relative to the conf directory. ### Uncomment the line below to use the default password file. # password-db = passwd |
其中#起始的行表示注释,因此在修改anon-access和auth-access属性后要删除行首的#。一般来说设置为anon-access = none,auth-access = none,即未验证的用户不能进行读写,通过验证的用户可以读写。password-db = passwd把行首的#去掉,表示密码文件为passwd。
4. 添加用户
进入代码仓库的conf文件夹(d:/data/subversion/conf),编辑其中的passwd文件
### This file is an example password file for svnserve. ### Its format is similar to that of svnserve.conf. As shown in the ### example below it contains one section labelled [users]. ### The name and password for each user follow, one account per line.
[users] harry = harryssecret sally = sallyssecret jack = 111 max = 111 |
[users]节下定义了用户,等号前是用户名,等号后面是密码,注意若有#删除行首的#。
authz文件用记事本打开
[groups] designer = max
[/] admin = rw ---管理员对根目录可读写操作(可增加多个项目)
[/Design]
[/Web]
------下面两个没弄懂。。。可能是例子吧 [/foo/bar]
[repository:/baz/fuz] |
5. 启动服务
在windows控制台中运行“svnserve -d -r d:/data/subversion”,Subversion服务开始监听3690端口,客户端通过这个端口和服务器进行交互,进行源代码的管理。如果需要自定义端口号,运行“svnserve -d --listen-port 自定义端口号 -r d:/data/subversion”启动服务即可。
注意
1. 服务启动后,不要关闭控制台窗口,一旦关闭窗口,服务就停止运行了。可以将其包装为windows服务,参见服务器端实用工具——SVN Service Wrapper for Windows。
2. Subversion使用Socket通讯,请在防火墙中将使用的端口号设置成例外。
参考资源
Subversion官方网站:http://subversion.tigris.org/
Subversion中文文档:http://svnbook.red-bean.com/
服务器端实用工具——SVN Service Wrapper for Windows
对于在windows平台下运行的Subversion,可以将控制台程序包装成服务,这样就可以在服务器启动的时候自动启动服务,方便服务器的管理。
资源
SVN Service Wrapper for Windows:http://clanlib.org/~mbn/svnservice/SVNService.zip
安装
解开压缩包,将其中的SVNService.exe文件,复制到Subversion的bin目录,如“C:/Program Files/Subversion/bin”
·安装服务:
在控制台中运行“SVNService -install [svnserve命令的参数]”,如“SVNService -install -d -r d:/data/subversion”
·更改参数:
在控制台中运行“SVNService -setup [svnserve命令的参数]”,如“SVNService -setup -d --listen-port 6681 -r d:/data/subversion”
·卸载服务:
在控制台中运行“SVNService –remove”
参考资源
官方网站:http://clanlib.org/~mbn/svnservice/
客户端——TortoiseSVN
TortoiseSVN是Subversion的一个客户端,它最大的特点是不需要任何IDE,而与windows资源管理器集成。
资源
客户端:http://nchc.dl.sourceforge.net/sourceforge/tortoisesvn/TortoiseSVN-1.3.3.6219-svn-1.3.1.msi
语言包:http://jaist.dl.sourceforge.net/sourceforge/tortoisesvn/LanguagePack_1.3.3_zh_CN.exe
安装
执行客户端安装包,注意选择自定义安装,有个针对.net web项目的选项,默认安装在“C:/Program Files/TortoiseSVN”,然后进行语言包的安装。
配置
1. 改变语言
虽然安装了语言包,但TortoiseSVN也不会自动切换界面语言,需要在windows资源管理器的菜单栏中,选择“文件->TortoiseSVN->Settings”命令,在弹出的窗口中选择“简体中文”。
常用命令
1. 文件库浏览器
在URL框中输入SVN服务器的地址,如svn://oa.menhoo.com:6681,按照提示输入用户名和密码,即可进入版本库的浏览界面,右上方有个版本“Head按钮”,Head就是最新版本的意思,在这里可以进行一些打开、保存、删除等常用操作。注意,这里进行的操作将直接影响服务器版本库中的内容,而不是本地的副本。
2. 导出
将版本库中选中的目录和文件按照指定的版本号的内容进行导出,默认情况下将导出最新版本,这个命令类似于VSS中的获取最新版本。注意导出和取出的区别,可以将这个命令简单的理解为下载。
3. 在此创建版本库
创建一个新的版本库,只有服务器才需要这个操作。
4. 导入
将当前路径下的所有文件导入到版本库中。类似VSS中创建了一个新项目,然后添加文件。与VSS不同的是,当前路径下的文件可以被删除掉,因为它们不再被Subversion所使用,可以将导入命令简单的理解为上传。
5. 取出
在当前文件夹中建立版本库中项目的副本,类似VSS中的设置工作目录和获取最新文件。当文件取出完成后,在当前目录里有了一个版本库的个人拷贝,可以编辑你的工作备份中的文件,并且提交到版本库。
参考资源
TortoiseSVN官方网站:http://tortoisesvn.tigris.org/
SVNService.exe 下载:http://bbs.iusesvn.com/attachment.php?aid=12&k=353448f2f541bc3bff341db7d7b9d80c&t=1216029811
关于SVNService的服务启动
SVN Service Wrapper for Windows
This is my Win32 Service wrapper for SVN. Source is included, and its in the public domain. No need to copyright this stuff.
Usage instructions:
SVNService -? to display this list
SVNService -install <svnserve parameters> to install the service
SVNService -setup <svnserve parameters> to change command line parameters for svnserve
SVNService -remove to remove the service
SVNService -debug to run as a console app for debugging
将svnservice.exe放在subversion的bin目录下
Example:
比如,你的所有项目都在c:/svnrepo下,你可以如下
安装时用 SVNService -install -d -r c:/svnrepo
更改时用 SVNService -setup -d -r c:/otherplace/svnrepo
如果访问其中的一个项目c:/svnrepo/project1,可以指定路径
svn://localhost/project1 (注:作为url时用/)
第一次安装完后要到服务中手动启动它,
或者到服务中将它设为自动启动,让每次机器启动时自动启动这个服务。
IMPORTANT:
Make sure you place SVNService.exe in the same directory as svnserve.exe
一定要将SVNService.exe放在svnserve.exe相同的目录
Special thanks go to Craig Link at Microsoft for creating the initial service.c.
-Magnus Norddahl
(备注:以上中文由PCplayer添加)