SVN (转)

    技术2026-08-11  3

    SVN (转)

    使用软件:

    软件版本号 说明 svn-1.4.4-setup.exe                                    SVN的服务器 TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi (乌龟)   SVN的客户端

    搭建SVN服务器:

    1.1、安装

    安装SVN服务器(svn-1.4.4-setup.exe),建议将保存路径改为C:"Subversion;完成安装后,右击我的电脑→属性→高级→环境变量 将PATH变量的值设为C:"Subversion"bin;将APR_ICONV_PATH变量的值设为C:"Subversion"iconv。

    SVN客户端安装,按照提示完成即可。

    1.2、创建版本库

    方法有两种

    第一种:服务器机器上创建两个文件夹,例如(D:/sourcecode/project1),右击刚才创建的文件夹(project1)选择TortoiseSVN→在此创建版本库,接着会弹出个对话框,选择Berkeley 数据库(BDB)即可,提示版本库创建成功。

    第二种:服务器机器上创建一个文件夹,例如(D:/sourcecode),执行以下命令对版本库进行创建:

    svnadmin create D:"sourcecode" project1   在这里只需要创建好sourcecode文件夹,project1文件夹自动创建,(版本库文件自然都放在project1下)

    1.3、创建SUBVERSION 服务

    执行以下命令

    sc create svn binpath= """C:"Subversion"bin"svnserve.exe"" --service -r ""D:"sourcecode""" displayname= "Subversion Server" depend= Tcpip start= auto

    这里需要注意的有两点: 1、binpath是你Subversion安装地址,并且指向bin文件里的svnserve.exe。

    2、--service -r ""D:"sourcecode"" 这里指的是版本库文件的父路径,而不是版本库的路径(对以后的SVN权限设置,这个很关键!)。

    提示创建成功!

    去管理工具→服务启动Subversion Server这个服务,以后开机将自动启动。

    1.4、操作版本库信息

    在1.2中已经创建了名为project1的版本库文件,这个文件夹里会有很多子文件夹及文件,我们先对其下的conf文件夹里的文件做个说明吧~

    svn服务配置文件,该文件版本库目录的conf目录下,文件名为svnserve.conf。 用户名口令文件,该文件名在文件svnserve.conf中指定,同目录下的passwd。 权限配置文件,该文件名也在文件svnserve.conf中指定,同目录下的authz。

    接下来要对这三个文件都做一下更改:

    1:首先用记事本打开passwd文件,这个文件是创建用户、设置用户密码用的;

    在[users]下 加入 用户名 = 密码 ;

    例如: [users]

            TuXia = 11

                  Test =22

    这里的TuXia为用户名,11为密码,需要注意的是,添加一个用户时要从顶格开始写,否则SVN将会报错。

    2:打开conf目录下的svnserve.conf文件,在[general]下面添加:

    authz-db = authz

    anon-access = none

    password-db = passwd

    realm = sourcecode

    auth-access = write

    上面的realm为版本库应用域,后面写你的版本库所在目录的父目录即可。

    3:打开同conf目录下的authz文件(权限操作)

    这里先要做下说明,版本库一般有两种形式:单库式和多库式。他们的服务启动和authz配置都有所不同。

    单库式(直接指定到版本库):

    在dos下切换到C:"Subversion"bin目录执行如下操作:

    svnserve -d -r D:"sourcecode"project1 这样服务就启动了,把这个控制台窗口最小化即可,不要关闭!

    下面对authz文件进行配置(把[groups]下面注释的东西先删了吧~因为多容易混淆,另外注意顶格开始写)    [groups]    g_Admin = TuXia    g_User =Test   [/]   @ g_Admin =rw      

    *=

    在上面的第1步中,已经添加了两个用户(TuXia,Test);

    将g_Admin组里添加TuXia这个用户,g_User组里添加Test用户,若一个组里有很多用户,则用户与用户之间用“,”分开即可,例如:g_Admin = TuXia,Test

    [/]表示对整个版本库的操作权限,g_Admin这个组有rw(可读可写)权限,也就是说TuXia这个用户对这个版本库下的所有项目文件都具有操作权限,*= 的意思是除上面的组以外别的组没有对版本库的操作权限(*= r 表示其余人拥有读的权限),所以Test这个用户将不可以操作整个版本库下的所有项目文件。

    如果想对版本库下的每个项目文件分配权限设置,那么我们就必须使用‘多库式’

    多库式(指定到版本库的上级目录)

    在dos下切换到C:"Subversion"bin目录执行如下操作:

    svnserve -d -r D:"sourcecode 这样服务就启动了,把这个控制台窗口最小化即可,不要关闭!

    下面对authz文件进行配置(把[groups]下面注释的东西先删了吧~因为多容易混淆,另外注意顶格开始写)

    [groups]

    g_Admin = TuXia

    g_User =Test [project1:/] @ g_Admin =rw      

    *=

    [project1:/ department]

    @ g_Admin =rw

    *=

    [project1:/ employee]

    @ g_Admin =rw

    @ g_User =r           //赋予g_User组只读的意思

    *=

    应该注意的是:SVN服务器上必须先要有department和employee这两个文件夹,那么这样的权限配置才会生效。

    1.5、强制写日志

    网上很多地方所说的加个钩子脚本操作确实简单,但不管用,我发现一个脚本类库,操作有点麻烦,但是使用效果很好,参考(http://bbs.iusesvn.com/thread-2480-1-1.html)页面拉下去有整个脚本的zip,下载下来,按照网站上步骤做即可。

    这样SVN服务器端的搭建就完成了。 嘿嘿  ^_^

    下文转载自 http://bbs.iusesvn.com/thread-2480-1-1.html

    使用CaptainHook实现的svn hooks功能

    前几天google,发现了一个.net的svn hooks脚本的类库,主页:captainhook 下载下来,修改了其中的一些代码,暂时实现了“强制写日志”,“提交发送邮件”,“允许修改自己提交的日志”的三个功能。 现在讲讲如何使用: 1.  把压缩包中CaptainHook.exe,CaptainHook.exe.config,CaptainHook.Interfaces.dll,CaptainHook.SubversionWrapper.dll和plugin中所有文件复制到某文件夹下,如:D:"CaptainHook。 把hooks_bat文件夹下的三个bat文件复制到版本库的hooks文件夹下。 2.  修改三个bat文件,把其中的D:"CaptainHook"CaptainHookBinaries"CaptainHook.exe修改成D:"CaptainHook"CaptainHook.exe 3.  配置CaptainHook,修改CaptainHook.exe.config      

                                                        修改三个plugin的path,enable:true/false,表明是否启用该plugin。 修改二个svncommand的path值,修改成正确的值,如果配过svn的路径到环境变量path中,则不需要改动。 4.  配置“强制写日志”功能 打开plugin文件夹下的RequireLogMessage.Plugin.cfg.xml     lesslogsize 值表明提交日志的长度最小值 errormessage 值表明提交日志为空或不大于等于最小字符数时的错误信息,请注意不能含有中文字符,否则TortoiseSVN会报错。 5.  配置“提交发送邮件”功能 打开plugin文件夹下的RequireLogMessage.Plugin.cfg.xml                               admin@svn.com" />           admin@svn.com" />                                           配置正确的host,port值,如果邮件服务器需要密码验证,则auth为true,并且配置正确的user和password值,否则为false。 mail中各个节点值,很明确了,就不详细说了 6.  配置“允许修改自己提交的日志”功能 打开plugin文件夹下的EditLogMessage.Plugin.cfg.xml           表明除了自己外,用户admin可以修改任意用户提交的日志, 如果有多个这样能修改任意用户提交日志的用户,则请配置多个author节点 表明修改后的日志长度的最小值。 通过以上的配置,就可以使用“强制写日志”,“提交发送邮件”,“允许修改自己提交的日志”的三个功能,enjoy it!!!

    转自(http://www.cnblogs.com/RayGu/archive/2008/07/04/1235876.html)

    最新回复(0)