利用SVN进行源代码管理


分类: Source Code Managemet

    对于稍微大一点的项目我想都有必要用到源代码管理工具,今天我们就逐步说一下SVN的使用。

SubVersion+TortoiesSVN的配置

1.安装SubVersion 。(下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91),例如我安装到D:/SVN/SubVersion

2.安装TortoiseSVN。(下载地址:http://tortoisesvn.net/downloads),这是一个SubVersion的图像化管理工具,没有它也可以,但是管理SubVersion需要使用命令行的形式,安装过TortoiseSVN可以在右键菜单出现相应的选项。例如我安装到了D:/SVN/TortoiseSVN

3.建立版本库(repository)。这点和VSS一样,我们需要一个库来存放版本信息。创建方式有两种通过SubVersion的命令行或者通过TortoiseSVN的图形界面来创建。我们就直接通过TortoiseSVN创建,例如我想在D盘建立一个文件夹SVNServices用来放版本库,然后在其中建立一个EMIData的文件夹作为我的项目EMI的版本库,这是我对EMIData点击右键--TortoiseSVN—Create Repository here 即可将EMIData最为一个版本库,这是你会发现EMIData文件夹中多了很多的文件。

4.启动SVN服务。到这里我们的SubVersion其实还没有启动,我们在cmd命令行输入:svnserve –-daemon –-root D:/SVNServices 这样我们就可以启动SVN并且以D:/SVNServices作为根目录。这里我要指明几点,第一就是输入的命令中两处都是两个‘-’,也就是‘--’而不是‘-’;第二点就是启动后cmd窗口使不能关闭的,这点类似于tomcat的命令窗口,但是和tomcat一样我们后面会讲到有更好的办法不需要一直开着这个窗口。

到了这里我么来检测一下刚才建立的版本库是否正确,右击打开TortoiseSVN--Repo-browser在url处输入svn://Localhost/EMIData 如果你看到了EMIData这个空的库就说明你已经成功建立了版本库。

5.分配用户权限。我们的SVN服务器不是谁都可以访问的,肯定需要配置权限。用文本编辑器打开D:/SVNService/EMIData/conf/svnserve.conf 我们将# password-db = passwd   改为:password-db =passwd 也就是说我们使用密码验证,这里说明一点就是#后面的空格也要删除。接着我们修改同目录下的passwd文件,增加一个jianxin160帐号,在[users]这个节下面添加jianxin160=123456即可,即用户名,密码都是123456。

6.将项目导入到版本库。例如我的项目EMI在F:/EMI这个文件夹,我通过右键TortoiseSVN—Import…在弹出对话框的url处输入“svn://Localhost/EMIData/EMI”,点击OK后输入上面我们的用户名和密码(jianxin160和123456)。

Apache架设SVN服务

    通过上面的操作其实我们已经可以管理项目了,你已经发现我们通过输入svn://Localhost/EMIData/EMI其实就可以在TortoiseSVN的Repo-Browser中查看项目文件,事实上SVN本省自带的服务器就可以进行版本管理。但是如果我们在Visual Studio中通过输入svn://…来导入和管理我们的项目未免有些不足,而且平时查看还要靠TortoiseSVN的Repo-Browser,况且还要一直开着cmd窗口多麻烦。有没有更好的办法,是有的,那就是我们通过Apache服务器来做。

7.安装Apache。(到这里下载:http://httpd.apache.org/download.cgi)例如我的安装到了D:/SVN/Apache下,安装过程比较简单我就不再说了。

8.关联Apache和SVN。Apache是不知道SVN的,肯定也是不能管理它的。将SubVersion安装目录中bin目录下的intl3_svn.dll,libdb44.dll,mod_authz_svn.so,mod_dav_svn.so复制到Apache安装目录Modules中;在Apache的conf文件夹中找到httpd.conf文件,将#LoadModule dav_module modules/mod_dav.so前面的”#”号去掉,然后在后面添加:LoadModule dav_svn_module modules/mod_dav_svn.so 注意它一定要放在紧跟其后的一行的后面。但是此时Apache还不知道如何处理,我们在httpd.conf最后面添加

DAV svn

SVNPath D:/SVNServices/EMIData 

这是我们就可以通过在浏览器中输入:http://127.0.0.1/repository/EMI 来浏览我们的项目了。可以看出通过使用apache我们将路径做了相应的映射。

9.配置Apache认证方式。我们到上一步为止谁都可以输入http://127.0.0.1/repository/EMI来访问我们的项目,当然不行了。我们这里通过apache的基本http认证来对项目进行保护。在apache的bin目录有一个htpasswd工具,通过它我们来创建用户信息。例如:通过命令行 htpasswd -c D:/SVNServices/EMIData/MyApacheUser/passwd.conf  jianxin160 然后提示输入密码,我输入123456 再次输入,就会在D:/SVNServices/EMIData/MyApacheUser(之前建立好MyApacheUser这个目录)创建一个文件passwd.conf 里面包含用MD5加密的密码。通过htpasswd -m D:/SVNServices/EMIData/MyApacheUser/passwd.conf  miaoer1987再创建一个用户。关于htpasswd操作我就不再细说。然后修改apache的httpd.conf,在Location标签(上面我们添加的)中加入以下内容:

AuthType Basic 
AuthName "svn repos" 
AuthUserFile D:/SVNServices/EMIData/MyApacheUser/passwd.conf 
Require valid-user

这是再输入http://127.0.0.1/repository/EMI就需要用户名密码了。

10.安装AnkhSVN。(下载地址:http://ankhsvn.open.collab.net/downloads)这是一个Visual Studio的插件,有了它SVN和Visual Studio结合就更天衣无缝了。安装之后我么发现在VS中File-Open就多了一个选项“SubVersion Project”,我们在这里输入http://127.0.0.1/repository/EMI就可以看到我们的解决方案文件(我第一输入后只有http://127.0.0.1/repository,关闭VS又打开才看到http://127.0.0.1/repository/EMI)EMI.sln打开就可以将整个工程下载到本地,这时注意要在Location中输入你要将副本保存在哪个位置。好了到此位置整个SVN的配置结束了。

补充一点东西

SVN配置注意

1.按照上面做过后,其他人还是不能用,原因很简单,127.0.0.1这样的IP找不到你的SVN服务器。解决方法:如果你是在局域网就换成你在局域网的IP,如果是静态IP(很少吧)只需要换成你的静态IP,如果你是在广域网又没有静态IP那么可以通过域名(这种情况需要有个虚拟主机),如果你没有虚拟主机又没有静态IP又需要在广域网使用可以利用动态域名绑定工具来实现。

2.局域网中使用一定要关闭SVN所在机器的防火墙。(在客户机连接SVN服务器时最好先ping一下然后在浏览器中输入对应地址试试,如果发现ping不通对方主机很可能是防火墙问题,注意包括各种防火墙)

SVN的使用

1.使用SVN,在VS中添加项目后,以后不需要每次都从File--Open—SubVersion Project来打开,而只需要直接打开副本中对应的解决方案文件。

2.对一个文件编辑时SVN会自动加锁,编辑之后记得Commit。

3.关闭VS时如果有没有Commit的文件,下次打开还可以Commit。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值