本节讲解的是SVN使用教程之入门篇,SVN的版本是TortoiseSVN,关于TortoiseSVN你还可以尝试从如下地址下载:
这里下载TortoiseSVN的源码:http://tortoisesvn.tigris.org/svn/tortoisesvn/
这里可能需要登录,用户名是guest,密码留空即可。
Checkout...
SVN使用教程介绍,Checkout的意思是签出,虽然和Export的效果一样是把代码从服务器下载到本地,但是Checkout有验证的功能,Checkout到某处的代码,将会被TortoiseSVN监视,里面的文件可以享受各种SVN的服务。选择那个Checkout的话,就表示这个目录将与这个SVN地址关联,这里的修改可以提交到SVN服务器。由于这表示将参与代码的编写,往往需要开通权限才可以。
可以到http://code.google.com/hosting/,选择createnewproject,获得一个由google提供的SVN空间,上传你的代码。我就不在这里详细讲申请过程了,填一个简单的表格就可以。
现在,我假设你已经得到某个SVN的账户和密码,譬如我们的RTG项目:
https://game-rts-framework.googlecode.com/svn/trunk/
注意前面是https://,多了一个s表示security,意思需要校验。
假设用户名是guest,密码是abc(这个用户名和密码可以由项目管理者分配给你)
1、在某目录上右键单击SVNCheckout...出现链接输入。填入上放的url,其他选项依旧不要更改,和Export类似。
2、在要求输入用户名和密码的时候填写正确的内容,接着会出现代码下载画面。
3、全部文件checkout之后,目录上会有一个绿色的勾,表示代码在最近一次update只好未被修改。
这时,目录中的文件都会有绿色的勾,如果你修改了他们,就会出现红色的惊叹号表示这个文件已经被修改。这个目录中所有带勾的文件目前都在Tortoise的监视之下了,可以尝试右键单击文件,你会发现可以执行很多操作。接下来我会挑选一些比较常用的来讲解。
Commit,Revert,Add,Delete...
SVN使用教程介绍,假如你更新了目录中的文件,那么就可以用到commit功能。这个功能就是将你本地的文件修改记录上传到服务器上面,可以理解为上传。
但是commit的功能不仅仅是上传,他会和服务器上面的文件进行对比,假如你更新了某个文件而服务器上面也有人更新了这个文件,并且是在你checkout之后做的更新,那么它会尝试将你的更新和他人的更新进行融合(merge),假如自动merge不成功,那么报告conflict,你必须自己来手动merge,也就是把你的更新和别人的更新无冲突的写在一起。
commit的时候,***填写Log信息,这样保证别人可以看到你的更新究竟做了写什么。这就相当于上传文件并且说明自己做了那些修改,多人合作的时候log非常重要。
TortoiseSVN的commit只会上传原先checkout然后又被修改了的文件,假如你新加入了某些文件,需要右键点击文件选择Add,然后文件上面会出现一个加号,在下次commit的时候它就会被upload并且被标记为绿色对勾。没有绿色对勾的文件不会被commit。
假如你需要给带有绿色对勾文件改名或者移动它的位置,请不要使用windows的功能,右键点击它们,TortoiseSVN都有相应的操作。想象这些文件已经不在是你本地的东西,你的一举一动都必须让Tortoise知道。
假如修改了某个文件但是你后悔了,可以右键点击它选择Revert,它将变回上次checkout时候的情况。或者Revert整个工程到任意一个从前的版本。
Update
SVN使用教程介绍,假如是多人合作的项目,自己不做修改的话别人也要修改,这时候就需要使用update来同步本地和服务器上的代码。同样是右键选择update,所有的更改就会从服务器端传到你的硬盘。注意,假如别人删除了某个文件,那么更新之后你在本地的也会被删除。
如果本地的代码已经被修改,和commit一样会先进行merge,不成功的话就会报告conflict。
其他……假如有的文件不想让别人修改,还可以进行Lock操作。
还有用于查看所有log的showlog菜单,现实版本更新图示的Revisiongraph,查看服务器端目录结构的Repo-browser。
另外还有创建tag操作,相当于把当前的代码版本复制一份到其他地方,然后以这个地方为出发点进行新的开发,与原来位置的版本互不干扰。
这些属于比较高级的应用,详细的请自己查看帮助文档http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/吧。
【编辑推荐】