前言
由于此文章写的主要是针对我们项目组其他成员参考,所以在此也不叙述如果建立服务器端的是数据库了,而且此手记也主要针对集成到VS.NET 2005 的ANKH开发。
介绍在WINDOWS下的使用SVN
需要软件:
Subverion
TortoiseSVN
Ankh
下载下来的subversion.rar客户端只需要安装TortoiseSVN-1.2.0-svn-1.2.0.msi。
安装完TortoiseSVN后,在任何地方点击右键都会增加两个菜单:SVN Checkout 和 TortoiseSVN
1.获取服务器上的项目
在指定的目录(项目开发目录),比如:E:\ABA\[这个路径大家可以自己定义,这里我就使用这个目录]
在E:\ABA\目录下,右键,选择SVN Checkout,此时会弹出一个登陆框,需要输入仓库地址和Checkout到本地的目录(默认就是你当前的目录),
URL of repository:输入svn://服务器地址/ABA
Checkout directory:默认即可,其他全部默认。
点击“OK”,此时有弹出一个登录框(由于服务器设置必须验证才能获取项目副本),输入用户名和密码,确定。
好了,如果服务器地址[即URL of repository]没有填错的话,这个时候应该就可以正确的获取服务器上的项目副本。
2.使用ANHK集成至VS.NET开发
打开已经获取的项目,我们所看到的源代码管理就和VSS差不多了,只不过是VSS采用的解决方案是“锁定-修改-解锁”,而SVN采用的解决方案是“复制-修改-合并”,也就是同一个文件可被多人编辑,这个也是我们现在开发比较不习惯的地方。
现在简单的介绍几个常用的命令:
Update:从服务器上获取更新副本
Diff:指定文件的版本比较,选择此项会弹出一个选择框,让你选择版本,有要比较的文件[Select items for diffing]、开始版本[Revision start]和结束版本[Revision end],这两项默认即可。
Commit:提交修改,提交修改是我们最需要注意的,如果服务器上的版本与你本地版本不一致[即你修改前的版本和服务器上的版本比较],则会提示你的版本过时,在这种情况下会发生,文件F,同时被A和B获取副本到本地进行修改,然后A先把修改好的文件F Commit到服务器上,这个时候A是正确的,然后B也要把文件F Commit到服务器,这个时候SVN就是提示B:“Out of Date”(其实系统也会提示你先Update)。
这个时候的解决方法是,先进行Update,但Update也会发生两种情况:
1.如果A和B都修改了文件F,但他们修改的位置是不一样的,也就是软件可以很明显的识别,那这个时候Update,SVN会自动把服务器上的版本跟B的副本进行合并,放心,这个是很正确的。
2.如果A和B都修改了文件F,但他们修改的位置是一样的,这个时候软件是没办法识别的,这个时候Update,SVN会从服务器上把各版本都放到B的本地来。你会发现你的文件夹多了很多个莫名文件,而且文件F也被修改了,这个时候就需要由A和B进行沟通协调,然后由B进行整理一分最终的文件F,可出现这个情况[冲突]会比较少。最后进行“解决冲突文件”,Ankh->Resolve confliceted file,然后进行选择最终文件F,进行Commit,好了,冲突解决了。
Ankh->Add:如果刚附加近来的文件一般都显示着一个?的文件图标,这个时候就可以使用这个命令进行添加。
Ankh->Lock:使用这个命令进行文件锁定。
Ankh->Log:查看指定文件的版本记录。
3.如果查看服务器上的目录树
在项目目录下,右键->TortoiseSVN->Repo-Browser,输入要查看目录数就可以查看了。