关♥生活,关注互联网。
版本控制(Revision control)简介
在进行团队项目开发时,往往需要将同一份代码反复修改,这样容易造成不一致。例如有两个同时在修改index.php这个文件,你修改了第m行,而同时另外一个成员修改了第n行的内容,如果你先传回修改过的文件,而后另一个人的传回的文件就必然覆盖你所做的修改,最终造成index.php文件只修改了第n行的内容;即便在此过程中两人做好沟通工作,对文件修改的合并也会增加一些额外的工作,当然这是每个人都不想做的。
此刻如果有一个公共的代码管理服务器就可以解决我们的问题,google code正是这样一个开源的代码托管服务(当然类似的服务有很多,SourceForge就是其中有名的一个,今天姑且不论他们之间各自有什么优点),下面我们就一块看看如何使用TortoiseSVN软件对托管在google code上的项目进行简单的操作。
一、版本控制简介:
版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 – 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜在的混乱。
二、什么是 TortoiseSVN:
三、名词解释
- 检出工作副本:你的版本库就像是一台时间机器,它记录了所有提交的修改,允许你检查文件或目录以及相关元数据的历史。通过一个Subversion 命令你可以根据时间或修订号取出一个过去的版本(或者恢复现在的工作拷贝),然而,有时候我们只是想看看历史而不想回到历史。
- 提交修改:可以理解为上传修改文件的记录,就是把工作副本里面修改过的文件的记录上传到版本库里面。
- 更新工作副本:可以理解为下载最新版本库文件的记录,就是把版本库里面最新上传的文件记录下载到工作副本里面。
- 锁定—修改—解锁:许多版本控制系统使用“锁定 修改 解锁”机制解决这种问题,在这样的模型里,在一个时间段版本库的一个文件只允许被一个人修改。首先在修改之前,Harry 要“锁定”住这个文件,锁定很像是从图书馆借一本书,如果 Harry 锁住这个文件,Saly 不能做任何修改,如果 Sally 想请求得到一个锁,版本库会拒绝这个请求。Harry 结束编辑并且放开这个锁之前,她只可以阅读文件。Harry 解锁后,就要换班了,Saly 得到自己的轮换位置,锁定并且开始编辑这个文件。
四、TortoiseSVN基本操作:
1.获取密码
下面的页面中就有相应的svn密码,当然有了密码和路径就可以上传和获取源代码了。
不过请注意:大部分时候上面的页面是无法打开的,当然也就无法获取svn密码。这里姑且不说是怎么造成的,就直接说一下如何解决吧。方法很简单:就是打开您的hosts文件(位于:C:\Windows\System32\drivers\etc\Hosts,修改之前建议备份),在下面添加:66.249.80.104 code.google.com 一行即可。
2.初次上传源代码(import)
既然svn的url和密码都有了,当然就管理我们的源代码了。首先安装TortoiseSVN,它是一个图形界面的svn源代码管理工具。下面就用它上传我们的源代码吧。
首先选择要上传的项目文件所在文件夹,点击右键,使用TortoiseSVN的import命令导入。
此时要求输入svn地址
接着需要输入svn账户信息,用户名就是google账户,密码就是上面说的google随机生成的密码。
输入完后点击ok,即可进行传输。
3.获取源代码(update)
或者说是更新本地源码;上传源代码后就可以下载来编辑,编辑之后再更新到服务器,这也是标准的源代码管理流程。那么如何签出编辑呢?其实很简单,安装完TortoiseSVN就可看到右键”SVN Checkout“,这样就可以签出源代码。
输入svn的url和本地源代码副本地址
接着就会获得源代码到本地
注意:上面是使用签出命令,事实上您如果不需要修改只需要获得源代码的时候,只需要使用TortoiseSVN的”Export”命令导出源代码即可。
4.提交改动后的代码(commit)
提交代码是将更新到本地的代码做出修改后,提交到原代码库中。操作基本和初次上传代码一致,多出的一个步骤是填写提交备注信息,这些信息对日后的维护,以及发现问题后进行版本回溯的意义重大。
.
五、推荐的代码提交规范
代码提交规范有三大点,必须严格遵守:
- 控制好提交粒度。每次的提交都必需具有独立性的原子性,建议是以一个功能点或Bug fix为单位;无直接关联的文件不能在同一次提交;除了初次提交,尽量不用commit -a。
- 认真对待提交备注,多花一分钟回想本次提交的代码所含的意义,清晰描述下来,很有可能以后看备注的人是你。
- 编译、运行及测试没通过的代码不允许提交。
基本上,严格遵守上面的代码提交规范,在双主分支的结构上协作,过程马上会变得舒服,如果加上一个提交粒度辅助工具的配合,那么效果更佳。
六、其他参考资料
1.百度百科:http://baike.baidu.com/view/183136.htm
2.Tortoise SVN 进阶教程: (建议点击文档下方的“full”按钮全屏观看)
View more documents from Kainy。
约13年前
嗯 这个软件用到了 不错………………..不过更多是用的eclipse
约13年前
元旦快乐哈
约13年前
2011新年快乐~。
约13年前
哈,完全新手教程。。
约13年前
很深奥
约13年前
oh,卖糕的,原来还有这么大的学问
约13年前
也有不少用cvs的。。嘿嘿。
约13年前
这个有用啊,我一直没搞明白,好好学习一下。多谢!
约13年前
嗯,這個挺好用的,我都是來到公司工作后才知道這東東的……
约13年前
我们公司用的就是TortoiseSVN,挺好的
约13年前
就我所认识的圈子里,用过的都说好。。