简单的svn工作流程及命令行指令

来源:互联网 发布:java编写中文软件 编辑:程序博客网 时间:2024/04/27 22:42
svn可以对我们的代码进行系统的管理。主要功能就是保存所有的历史版本,方便回退版本,查看修改记录,保存版本防止丢失。
理想状态下,希望svn上的每一个版本拿下来都是可以正确运行的。所以建议大家提交代码要少量多次,每次修改一个功能就马上提交,可以避免修改太多导致合并出错或者遗漏。(如果一次修改的太多,合并代码时花费半天一天时间也是很正常的)

一,常用命令(在mac上的命令行,windows上有更加方便的gui工具)
svn checkout:从svn服务器获取最新的版本
svn log :查看所有日志
svn log -l 4 : 查看最近的四条日志
svn commit -m “修改记录”:  提交本地代码
svn info:查看当前版本的svn信息,主要查看svn路径和工程版本号
svn up:更新库上最新版本到本地。
svn up -r 2014:将本地版本更新为r2014版本
svn st: 相对于库上最新版本,显示本地修改了哪些文件
svn st后会列出所有修改的文件
A:此文件是新增文件
M:此文件内容修改
D:此文件要删除
?:未知类型,可以根据需要,在本地将其删除,或者使用svn add,svn delete将其关联到库上

二、svn提交建议
在多人共同修改同一个文件时很容易出现冲突。或者如xcode工程文件很复杂,容易将一些垃圾信息上传,所以建议svn目录和工作目录分开,使用比较工具合并代码,然后再提交。这样做虽然会浪费些时间,但可以最大限度保证提交代码的质量,在合并代码的时候还能review一下修改部分,发现一些错误。
根据我们现在的项目情况,建议操作流程如下:
1,svn checkout 取下最新的版本(svn 版本)
2,将此版本复制一份到正在修改的工程下进行修改。(工作版本)
3,将svn版本更新(svn up)
4,使用比较工具将工作版本的修改合并到svn版本。合并完成后 svn st,确认所有修改的文件正确
5,在工程中添加删除文件都会修改工程文件,而工程文件不好合并,建议合并完代码后,在svn版本中打开工程文件,再执行一次删除或者添加文件的操作
6,在合并的时候有可能其他人已经提交了代码,所以在确认后再运行svn up,如果有冲突,将冲突代码下载下来,在工程中修改。然后再执行第四步
7,若没有冲突,使用svn commit -m “提交日志”将代码提交。由于我们所有人都是使用怿宣的账户在提交代码,无法区分修改人,建议在提交日志中,不仅要将修改的内容详细记录,还要加上修改人姓名 
如 svn commit -m “[宋东昊]添加设置手势的操作。使用宏开关GESTURE_VIEW_H来控制此功能;需要将ALPSecurity中的GestureInputView.h设置为公共头文件”

以上的命令行操作是针对mac版本的svn,在windows上有对应的更方便的gui工具

三、推荐工具
推荐几个比较好用的工具
windows:
tortoiseSVN,可以方便的查看修改的文件、提交日志、历史版本等。上面提到的svn up ,commit,log等命令在软件中都有菜单可以点击
beyondcompare3  一款非常优秀的二进制比较工具,可以比较任何文件,效率很高
mac:
svn工具:versions或者苹果的svn命令行,相比windows上的工具来说真是太难用了
比较工具:changes。目前只发现这一款还算可以,但效率就真不敢恭维了。还经常崩溃,聊胜于无吧

希望以上建议能帮助大家正确的提交代码.有不对的地方请各位指正



我创建了一个QQ群,希望大家能本着互联网开放的心态,将遇到的问题和经验在群里分享,大家互相交流心得,共同提高。
群号:77311380

0 0
原创粉丝点击