安装和使用SVN nebula.fortune by beijing 一、安装 Apache 略 不用网络版的话,可不需要。 注意看SVN中编译的Apache的版本,选择合适的版本安装,否则可能不能用。 二、安装Subversion 服务器 可以在系统变量里面看到PATH里面已经有路径了. 三、安装TortoiseSVN 客户端 可在装完语言包后重启机器。 四、安装语言包 五、创建SVN存储库 命令行方式:svnadmin create C:\svn\ 图形菜单: repository创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录(未创建),让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号; 六、设置客户端语言 七、配置SVN服务器 (这个位置就是在你建储存库的地方C:\svn) 打开/conf/目录,打开svnserve.conf找到一下两句: # [general] # password-db = passwd # anon-access = none # auth-access = write 去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件.anon-access = none 是匿名用户不能访问,必须要有用户名和密码。(注意:问题就出在这,一定要注意格式去掉注释后要顶格不能有空) 同样打开passwd文件,将 # [users] # harry = harryssecret # sally = sallyssecret 格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户 八、运行SVN服务 命令行方式: svnserve --daemon --root C:\svn 服务启动,--daemon可简写为-d,--root可简写为-r,可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务(注意:这是临时打开的服务,命令执行后不能关闭窗口) 用后台服务的方式可以设置开机自动执行。 C:\Program Files\Subversion\bin>sc create svnservice binpath= "c:\Program Files\ Subversion\bin\svnserve.exe --service -r c:\SVN" 就可以用net svnservice stop 或者start来启动服务了 也可以在Sevices.msc来启动了。 启动类型改为自动,并且启动. 九、设置Apache 1、将C:\Program Files\Subversion\bin(svn服务器中的安装目录)中的 mod_authz_svn.so 和 mod_dav_svn.so 复制到 Apache 安装目录 modules\目录下,再将 Subversion\bin 安装目录下面所有的 .dll 文件复制到 Apache\Bin 目录下(注意,这一步非常重要,如果提示覆盖操作,表示版本有问题,选择否) 找到Apache Group\Apache2\conf\httpd.conf文件,然后去掉如下几行的注释(删除 ''#''标记): #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_module modules/mod_dav.so 将下面两行添加到LoadModule部分的最后。 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule dav_svn_module "c:/program files/Subversion/bin/mod_dav_svn.so" LoadModule authz_svn_module "c:/program files/Subversion/bin/mod_authz_svn.so" 3、在这个文件的最后,追加如下语句: <Location /svn> DAV svn SVNParentPath c:/svn_web </Location> 根目录新建svn_web目录,在里面新建TEST目录测试,右键在此创建版本库。 Svn权限设置 1 #资源库的根位置,多库模式。实际的资源库路径为:D:\svnrepos\testrepo 2 <Location /svn> 3 DAV svn 4 SVNParentPath D:\svnrepos #AuthzSVNAccessFile svnaccessfile 5 AuthType Basic 6 AuthName "Subversion repositories" 7 AuthUserFile "D:\Program Files\Apache Software Foundation\Apache2.2\conf-svn\passwd" 8 Require valid-user 9 </Location> 10 11 #单库模式配置方法,根据实际需要选择一种配置方法就行。 12 <Location /svn> 13 DAV svn 14 SVNPath D:\svnrep\test 15 AuthType Basic 16 AuthName "Subversion repositories" 17 AuthUserFile "D:\Program Files\Apache Software Foundation\Apache2.2\conf-svn\passwd" 18 Require valid-user 19 </Location> 用htpasswd工具创建apache_authz 文件, 建立保存用户名和密码的文件 Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -cm D:\Subversion\apache_authz username1 -c 表示创建文件,-m表示对密码用md5加密 然后,会提示输入两次密码,以后再加用户就不需要用-c了,直接用-m即可。 下面建立控制用户访问权限的文件svn_authz 在C:\Subversion中新建一个记事本文件,输入下面的内容: [groups] test-developers = zxm everyone = @test-developers [test:/] //这表示,仓库test的根目录下的访问权限 @test-developers = rw [test:/test] //test仓库下test目录的访问权限 @test-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置 r 表示读权限 w 表示写权限 好,配置完成,重新启动Apache server 在浏览器地址栏中再次输入:http://localhost/svn/test/ 这次要输入密码才能进入,赶快试试吧。 保存httpd.conf文件,重启Apache,就能访问了。注:多库模式下的访问地址:http://localhost/svn /test;单库模式的访问地址:http://localhost/svn,第一次访问时提示输入用户名密码。使用htpasswd命令中设置的用户名 密码访问。 十、访问 1、客户端访问 浏览器输入: svn:\\SVN服务器地址,输入用户名和密码 2、其它几种方法 file:///磁盘驱动器|/repository所在目录/子目录 http://账号@服务器名称/ repository所在目录/子目录(网络配置失败,未测试) https://账号@服务器名称/ repository所在目录/子目录(网络配置失败,未测试) svn+ssh://账号@服务器名称/ repository所在目录/子目录 十一、建立一个Working目录 所谓的Working目录其实就是您平时用来存放工作档案的地方。通常我们会等到自己的工作做到一个段落的时候再进行备份。所以我们平常都是在Working目录下面工作,等到适当时机在Commit到Repository中。举例来说,我们在C盘下面建立一个名为Working的目录。首先建立这个目录,然后CHECKOUT,即鼠标右键SVN Checkout 首先我们要填入的是repository的位置,对于SVN来说,repository的位置都是URL。由于我们前面已经在C盘上建立了一个repository,因此,我们现在要在版本库(URL of repository)这一栏填入file:///C:/SVN/,接着,稍微看一下 检出至该目录(Checkout directory),这个字段应该要指向您的Working目录。确认后,按下OK按钮,您应该可以看到以下的信息窗口。这样就表示动作完成。 按下OK按钮后,再到您刚刚建立的目录下,您将看到Working目录下面多了一个名为.svn的目录(这个目录是隐藏的)。切记不应该更动这个目录下任何内容,否则会影响SVN的运行。 十二、新增目录和相关文件到Repository中 如果您前面的动作无误,现在您开始开发一个新的程序。比如您开发的程序将放在前面建立的Working目录下面的my_prj子目录,并做了第一次修改。 在my_prj目录的icon上面,按鼠标右键,并且选择TortoiseSVN->Add 接着,TortoiseSVG会把准备要加入的档案及目录,显示给您看。打勾的就是等下要加入到Repository中的。如果有不想这次加入的,不要勾选即可。 按下OK后,您将看到以下信息窗口: 目前仅记录你将进行的操作,并未真正提交,需要点击提交才会将制定的目录和文件真正的放入到Repository中。鼠标右键选择SVN提交(SVN commit) 紧接着,您将会看懂如下的窗口出现: 在这个窗口中,下半部会列出一个清单,让您清楚的了解到哪些档案要被Commit到Repository中,同样的,你不想有些档案不Commit,不打勾即可。在信息栏,您可以输入本次Commit的目的。这个非常重要,特别是Commit多了的话,需要通过这个信息得知各部分的差异。按下OK之后,通知您已经将制定的档案送到Repository中。 可以看到该目录已经是绿色勾了,表示您的档案都正确无误的到Repository中。 十三、更新档案及目录 为何需要更新?因为版本控制系统多半都是由许多人共同使用。所以,同样的档案可能还有人会去编辑。为了确保您工作目录中的档案与Repository中的档案同步的。建议您在编辑前都先进行更新的动作。在此,我们都先假设您已经将档案Checkout过一次.现在要说明的是如何在一个Check out过的目录进行update.在想要更新的档案或目录icon上面按下鼠标右键,选择 SVN 更新(SVN Update). 正常状况下,您可以看到如上的窗口。在这个窗口中会显示哪些文件更新了。 十四、更新至特定版本 有时候我们需要回溯至特定的日期或版本,这时就可以利用SVN的Update to revision的功能。在想要更新的档案或目录icon上面按下鼠标右键。并且选择TortoiseSVN->Update to revision Show log后可以回顾历史了。 可以看到指定文件或文件夹回到指定版本。 再使用SVN更新,又回到最后最新状态。 其他请看文档。 |
|
来自: 昵称5243121 > 《Subversion》