简单的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
- 简单的svn工作流程及命令行指令
- 枚舉指令的工作流程
- SVN的简单实用流程
- 简单的Flask工作流程
- struts2---简介及简单工作流程
- 使用版本控制程序SVN的工作流程
- Linux下svn的常用工作流程
- git与SVN协同的工作流程
- Struts2的工作原理及工作流程
- Struts2的工作原理及工作流程
- SVN基本工作流程
- SVN 工作流程模型
- ICMP:Windows DOS命令行指令"ping"的工作原理
- QPBOC流程及指令
- struts1.x的简单工作流程
- IDC机房工作的简单流程
- struts2的工作流程(简单)
- Mac快捷键及命令行指令
- 关于TCP打洞技术(P2P)
- commons-lang StringUtils#split的坑
- 顺序输出数组
- 为实习笔试做准备
- poj-3304-Segments
- 简单的svn工作流程及命令行指令
- HelloWorld项目的目录结构
- C++中构造函数能调用虚函数吗
- Netty HashedWheelTimer过多导致内存泄漏的排错
- 时间同步客户端
- 002
- C macros __LINE__, __FILE__ and __func__
- Cassandra源码学习:机架感应策略
- Win7上Git图形界面安装及配置过程