今天小宝鸽分享一篇SVN入门教程,比较适合刚接触SVN的猿友阅读。
另外分享一个优秀的分支合并工具Meld,对SVN使用比较熟练的猿友们也可以了解一下咯。
接下来将从下面几个维度向大家介绍:
(1)SVN简介与SVN环境搭建(附有安装包哦)
(2)本地仓库建立以及一些常用操作
(3)Meld的介绍与使用
接下来马上开始:
1.1、SVN简介:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。对开发团队的协作十分有用。如果脱离了服务器,开发者基本上可以说是无法工作的。
SVN分支的使用:什么时候创建分支呢?目前的企业上是这样做的,对于一个新的功能或新的版本修改,会从主干上拉出一条分支,进行开发。假设有两个模块需要开发,上线时间不一样,那么分别从主干上拉一条分支,分别为A、B。假设A先开发完成,把A合并到主干上,主干上线(或者直接上线A)。待B开发完成,把B合并到主干,把主干代码上线即可。
SVN服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。独立SVN服务器不结合Apache安装使用,连接独立SVN服务器也不用HTTP协议。这是比较快捷的SVN服务器配置方法。后面的讲解小宝鸽将会介绍独立服务器的运行方式。
2.1、TortoiseSVN(SVN客户端)与Setup-Subversion-1.5.3(SVN服务器)的安装。
TortoiseSVN下载:http://download.csdn.net/detail/u013142781/9355417 提供了32位和64位的安装包。
Setup-Subversion-1.5.3下载:http://download.csdn.net/detail/u013142781/9359453
下载完成后,采用默认方式将两者安装了即可。
2.1、创建本地仓库,这里博主新建了一个文件夹(博主的是D:\svntest)作为本地仓库目录,创建本地仓库方式如下图所示,在D:\svntest目录下的空白地方右键:
2.2、配置用户名和密码,打开在刚刚创建的本地仓库目录下的conf文件夹,里面有svnserve.conf、passwd这两个文件夹,分别打开,去掉标注行对应的注释符“#”。
其中上面的harry = harryssecret,sally = sallyssecret,harry和sally 为用户名,harryssecret和sallyssecret为密码。checkout和import时输入上面两个中任意一个用户名和密码即可。
2.3、接下来打开cmd.exe,输入命令svnserve -d -r D:\svntest,(D:\svntest为你创建的本地仓库的目录),回车就ok了,注意不要关掉对应cmd窗口(不然服务就停了)。
2.4、将资源上传到本地仓库,如下图。如果出现报错:期望文件系统格式在“1”到“3”之间;发现格式“4”,那么将之前创建的仓库删除了,重新用命令,创建,打开cmd.exe,输入命令:svnadmin create D:\svntest,回车即可。至于为什么出现这个问题,请查看
http://zhidao.baidu.com/link?url=hIsNiyLTPS_FIJ-6mh2Jyj6SFBikJ6TWEQgIeyjylpaRFx4NJQGsWHXQEgrj4f4L504HVtiVbpOlN8ftzvf9WK。
上面我输入的url是:svn://localhost/codetest1。如果需要输入用户名和密码,就输入2.2提到的用户名和密码。
2.5、checkout资源,如下图如果需要输入用户名和密码,就输入2.2提到的用户名和密码。
之后你就可以把url:svn://你电脑ip/codetest1(如svn://192.168.0.100/codetest1)给你同事或是舍友,如果你们是在同一个局域网下的话,他们也可以checkout啦。
2.6、commit提交修改后的资源,这里小宝鸽在checkout下来的项目里面修改了个new.txt文件,提交这个文件到仓库的操作如下:
2.7、update,更新也是同理的选中文件或文件夹,右击update就可以了
以下是第三方meld分支合并工具的介绍,如果不需要用到的猿友就可以不往下看了。
Meld 是一个可视化的文本差异比较工具,它可以跟多个版本控制系统集成,个人认为它是最好用的。比SVN或GIT的默认diff工具好用太多了。小宝鸽极力推荐!
安装包下载:http://download.csdn.net/detail/u013142781/9361917
3.1、使用场景:比如你用svn开了两个分支,分别在这两个分支上进行开发。如果没有冲突自然是很好,直接用svn合并。但是如果出现修改了同一个文件的多个地方,那么svn肯定是不能够完美解决的。因为这时候并不知道你想要怎么处理,这时候需要人为思考,手动处理了。而Meld给你提供了这个方便。
3.2、使用教程:打开软件就会到了下图界面:
然后你要选择其中一个比较方式(文件、目录、版本)。对于两个分支比较,自然是选择Directory comparison(目录)啦。选择完比较方式之后就会出现下图,选择orther之后可以选择到某个目录。然后我们选择了两个目录(对应两个分支),点击Compare按钮:
点击了Compare之后就会来到下图:
其中颜色有变的就是不一样的,双击对应的文件会到如下图图文件对比,可以点击箭头选择你希望的处理操作。对于把新建的文件同步到另外一个分支上的,选中文件右击“copy right”就可以了。
最后别忘记了svn提交哦,更多功能留给猿友去研究了哈,加油~~