在Visual Studio中使用SVN进行源代码管理
Posted KenshinCui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Visual Studio中使用SVN进行源代码管理相关的知识,希望对你有一定的参考价值。
对于稍微大一点的项目我想都有必要用到源代码管理工具,今天我们就逐步说一下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。
4.每次打开VS时建议获得新版本。
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于在Visual Studio中使用SVN进行源代码管理的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2003 预构建脚本找不到“svn”命令