1项目级SVN简易安装手册一、安装步骤假定现有一个名为“project_demo”的项目,项目组有4名成员,其中tswang为项目经理,liling为配置管理员,yangxia和szcao为普通成员,现在要为此项目建立SVN管理环境。SVN服务器操作系统为WindowsXP,4名成员内部局域网环境畅通。服务器可以是单独的一台电脑,也可以直接架设在配置管理员liling的电脑上。以下安装步骤指的是服务器的架设,普通项目组成员仅需安装TortoiseSVN即可。1、安装SVN服务器端配置管理员liling在服务器上执行CollabNetSubversion-server-1.6.11-3.win32.exe,除了在svnserveConfiguration和ApacheConfiguration页面修改SVN存放数据的Repository文件夹(下图中选择的文件夹是f:\svn_repos)和Apache的端口(下图中设置端口为8080)外,其它一路next到底。右键点击“我的电脑”,选属性-高级属性-环境变量-系统变量-path,将SVN的httpd\bin文件夹加入path。22、安装SVN客户端TortoiseSVN项目组所有成员(包括服务器上)都需要安装客户端TortoiseSVN。执行TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.msi,一路next到底,然后重新启动电脑。执行LanguagePack_1.6.8.19260-win32-zh_CN.msi,一路next到底。右键菜单中选择TortoiseSVN-Settings-General-language-中文简体,将TortoiseSVN设置为中文简体。3、配置Apache编辑svn安装路径httpd\conf文件夹里的httpd.conf文件:(1)去除“#LoadModuledav_fs_modulemodules/mod_dav_fs.so”前面的“#”;(2)在LoadModule区域的末尾增加一行:LoadModuleauthz_svn_modulemodules/mod_authz_svn.so(3)删除末尾的如下4行:Location/svnDAVsvnSVNParentPathf:\svn_repos/Location(4)在httpd.conf文件末尾,添加如下10行:Location/svn/DAVsvnSVNParentPathf:\svn_repos3SVNListParentPathonAuthTypeBasicAuthNameProjectSVNAuthUserFilef:\svn_repos\passwd.confAuthzSVNAccessFilef:\svn_repos\access.confRequirevalid-user/Location其中“f:\svn_repos”对应的是安装SVN服务器端时选择的Repository文件夹,可根据自己设定的文件夹相应修改。注意:如果httpd.conf文件中含有中文,需要使用UltraEdit或NotePad++等文本编辑器将文件转换为“UFT-8无BOM”格式,否则将出错或控制无效,详见下文中“补充说明”的“含有中文的配置文件”。4、设置用户名和密码配置管理员liling在DOS命令行窗口中,将当前路径转换到f:\svn_repos文件夹,执行htpasswd-cpasswd.confliling,用于创建f:\svn_repos\passwd.conf这个用户密码文件,并在其中写入一个名为liling的用户(用户名只能包含字母和数字,而不能含有\%&/!@#等字符),然后输入两次要为liling设置的密码,完成liling用户的添加。其中:-c是首次创建用户名密码文件的时候需要的参数,以后继续增加用户时就不要这个参数了。然后使用htpasswdpasswd.conftswang增加tswang用户,同样增加szcao和yangxia用户。5、建立项目的版本库在f:/svn_repos文件夹下新建project_demo文件夹,右键点击project_demo,在右键菜单中选择TortoiseSVN――在此创建版本库,则自动在project_demo文件夹下建立与SVN相关的子文件夹,这样就建立了一个project_demo项目的空版本库。4按照项目的实际情况,修改安装包中project_demo/trunk文件夹下的各级目录,然后右键点击project_demo文件夹,在右键菜单中选择TortoiseSVN――导入,在弹出的窗口中,版本库URL处填写此项目的链接地址,导入信息处填写对此次操作的备注信息,然后点击确定,此时会弹出窗口要求进行用户认证,输入用户名liling及密码,将建立的各级子文件夹导入SVN服务器。本地电脑上的project_demo文件夹仅是用来创建服务器上的各级子文件夹,此时可以将其删除。6、设置控制权限复制安装包中的access.conf到f:\svn_repos文件夹中,查找其中的“project_demo”替换为该项目的名称,并将用户ID分组对应写入groups下各行的等号后面,用户之间用英文的逗号隔离。现在默认的权限是:配置管理员(scm组)对所有文件夹具备读写权限;项目经理(manager组)和项目普通成员(member组)对tags文件夹仅具备只读权限,对其他文件夹具备读写权限。注意:如果httpd.conf文件中含有中文,需要使用UltraEdit或NotePad++等文本编辑器将文件转换为“UFT-8无BOM”格式,否则将出错或控制无效,详见下文中“补充说明”的“含有中文的配置文件”。7、启动Apache添加SVN安装路径下httpd/bin文件夹中的ApacheMonitor.exe的快捷方式到操作系统“开始”菜单的“启动”中,以便日后自动启动Apache的SVN服务,并运行5ApacheMonitor.exe。SVN的Apache服务正常启动后,可在IE浏览器中输入http://服务器IP地址:8080/svn/进行测试,应弹出要求用户登录的窗口,在其中输入用户名及密码,应可成功登录。8、开始使用版本库在某空白文件夹中,右键菜单选择“SVN检出”,在弹出窗口的“版本库URL”处填写此项目的链接地址“http://服务器IP地址:8080/svn/project_demo”,点击确定后检出此项目的版本库,然后即可开始使用。二、补充说明1、含有中文的配置文件如果httpd.conf或者access.conf等配置文件中含有中文字符,需要使用UltraEdit(下方左图所示)或NotePad++(下方右图所示)等文本编辑器将文件转换为“UFT-8无BOM”格式,否则将出错或控制无效。2、控制权限的设置SVN的权限控制是以文件夹为最小控制单元的,与Apache集成后,可采用Apache的权限控制方式。如果要实现更复杂的权限控制,需要修改access.conf。(如文件中含有中文,需要将此文件转换为“UFT-8无BOM”格式。)以下面的配置为例,来说明权限的设置方法:[groups]admin=SVNADMIN6manager=yhshu,qkxiamember=tphou,yinwei,wylian,hliaosc_all=@manager,@member[/]*=@admin=rw@sc_all=r[project_demo:/]@manager=rw[project_demo:/trunk/源程序]@member=rwlwang=rw说明:[groups]:用于定义用户分组,每个组一行,“=”前面是组的名字,“=”后面是这个组中各用户的名字,每个用户名之间用“,”分隔;引用用户名的时候,直接写ID,如“yhshu”;引用组名的时候,需要在组名前加“@”,如“@manager”(@和组名间不能有空格)。admin=SVNADMIN:定义了“admin”这个用户组,admin这个组中仅有1个名为SVNADMIN的用户;manager=yhshu,qkxia和member=tphou,yinwei,wylian,hliao:定义了manager和member这两个组,manager组中有yhshu、qkxia这两个用户,而member组中有4个用户;sc_all=@manager,@member:定义了sc_all这个组,这个组由manager和member这两个组合并而来;[/]:其下几行用于定义对Repository文件夹根目录的访问权限;每条权限规则一行,“=”前面是用户或者组的名字,“=”后面是这个用户或者组所拥有的权限(r为读,w为写,空则为无任何权限);默认情况下,下层目录自动继承上层目录定义的权限规则,除非另外单独定义下层目录的权限;*=:定义了全部人员对这个根目录都没有任何权限(下面几行授权的除外);@admin=rw:定义了admin这个组拥有对根目录的读写权限;@sc_all=r:定义了sc_all这个组拥有对根目录的只读权限;[project_demo:/]:定义的是project_demo这个项目的版本库的控制权限;@manager=rw:定义了manager组对project_demo这个版本库拥有读写权限;[project_demo:/trunk/源程序]:定义的是project_demo这个项目下的“trunk/源程序”这个文件夹的控制权限。@member=rw:定义了member组对“project_demo/trunk/源程序”这个文件夹拥有读写权限;lwang=rw:定义了用户lwang对“project_demo/trunk/源程序”这个文件夹拥有读写权限。按如上设置,各层权限继承,最终的权限结构如下:7SVNADMIN:作为管理员,拥有对全部内容的读写权限;@manager:manager这个组拥有对全部内容的只读权限,且拥有对project_demo这个项目的读写权限;@member:member这个组拥有对全部内容的只读权限,且拥有对“project_demo:/trunk/源程序”这个文件夹的读写权限(对其它文件夹只有只读权限);lwang:这个用户对“project_demo:/trunk/源程序”文件夹具有读写权限,但对根目录下的其它项目和project_demo这个项目的其它内容都没有任何权限。3、新建另一个版本库如果要在此服务器上为另一个新项目project_abc建库,则:(1)参照第上述第4步,使用htpasswdpasswd.confXXXXX增加新用户;(2)参照上述第5步操作,在f:/svn_repos文件夹下建立project_abc的版本库;(3)手工修改access.conf文件,在[groups]区域仿照project_demo项目增加几个分组project_abc_scm、project_abc_manager、project_abc_member,(4)在access.conf文件的[/]区域仿照project_demo项目增加如下3行:@project_abc_scm=rw@project_abc_manager=r@project_abc_member=r(5)在access.conf文件的末尾增加如下几行:[project_abc:/]*=@project_abc_scm=rw@project_abc_manager=r@project_abc_member=r[project_abc:/trunk]@project_abc_manager=rw@project_abc_member=rw[project_abc:/branches]@project_abc_manage