SVN (转)

来源:互联网 发布:数控g92螺纹编程格式 编辑:程序博客网 时间:2024/06/07 09:56

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


 
   
   
   
   
   
 

 
   
   
     
   

   
     
   

   
     
   

   
   
 


配置正确的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)

原创粉丝点击