SVN代码提交流程
2013-02-20 16:53
274 查看
前言:
经常从SVN上取最新代码下来后发现编译过不去,查找提交log找到之前提交的人,了解其提交代码的流程后,发现SVN代码提交流程有点问题. SVN代码提交虽然简单,但是如果没严格按照步骤来的话,很容易出错,出现代码覆盖,遗漏提交的情况。现在整理一个SVN提交代码流程的精简的版本。
有2种方法,推荐方法1。
方法1 通过本地SVN代码库中转提交:
1。本地SVN代码库更新
为了方便代码提交,建议本地维护一个与SVN对应的,只用来存放最新代码的本地SVN代码库(不做开发用)。其作用主要是用来在每次代码合并前,先从SVN上取最新代码。
(代码更新完毕后,如果修改不多,合并时间不会太长,则可以把代码库锁定:代码库文件夹右键--TortoiseSVN--Get lock...;如果修改太多,合并时间比较长,建议不要锁库)
2。合并本地开发库代码到本地SVN代码中
本地开发库代码可能是我们在一个月前,半个月前与SVN同步过,但是现在可能不一样了。我们现在要做的,是把本地开发库中的代码合并到前面1中的那个SVN代码库中去。
这里有一个非常重要的原则:合并代码的时候,我们只处理那些我们确认是我们自己新增的,修改的,删除的代码到本地SVN库中。任何不是我们做的修改,我们一律不要去动它。
比如有一段代码我们我们开发的时候没有,但是现在本地SVN库里有,那我们不要去删除它,而是忽视它,因为它应该是其他人新增上来的。
(说明:如果碰到修改冲突,这个不多,如果是遇到这个情况,应该考虑如何把我们的修改加入到最新代码上去)
3。编译本地SVN库代码
编译通过了才能提交到。这个可以防止提交遗漏,保证其他人从SVN上取下来的文件都可以编译通过。
4。合并本地SVN代码到服务器SVN代码库中
现在,我们本地SVN代码库中已经有了我们本地要提交的代码了。
如果我们之前有锁库了,则可以直接就把代码提交上去了(提交时记得写上日志,以便后面修改调阅)。
如果之前没锁库,这个时候还不能马上就提交了。因为这个时候可能其他人又提交代码了。所以,我们要先把这个代码与服务器SVN的代码再diff一下,以确保要提交的内容就是我们修改的内容。
说明:如果发现有变动,则重复上面1,2,3,4操作。
5。提交完毕
如果有锁库,则要进行解锁。
方法2 直接在开发库提交:
1。直接更新本地开发库代码
更新过程中,可能会发现不少提示冲突的。
更新完毕,如果修改不多,像上面方法1的1一样,可以把库锁定。
2。备份冲突
逐一找出提示冲突的那些文件(比如test.cpp),ctrl+c,ctrl+V一下(多出个 复件 test.cpp来),把test.cpp删掉
3。解决冲突
等把所有有冲突的文件备份过后,重新更新所有代码,这时那些有冲突的文件都将回到目前最新的版本中。
把备份的文件(复件 test.cpp)和目前最新文件test.cpp进行对比,把属于我们的修改的代码合并到test.cpp中去。当然,如果功能冲突,则要考虑我们的修该该做如何变动。
如果仅仅是修改位置冲突,则挪下位置就可以了。
4。编译代码
编译有问题则要进行修改。
5。提交代码
如果之前有锁库,则可以填上日志,直接提交。
如果没锁库,则在提交之前还要再diff一下,以确保要提交的内容都是我们自己修改的内容。
PS: 如果中间又有人做修改,则重复1,2,3,4,5操作。
6。提交完毕
如果有锁库,则要进行解锁。
方法1和方法2的比较:
方法1 通过本地SVN代码库中转提交
缺点: 浪费空间
优点: 比较安全。比如我们在进行提交到服务器SVN代码库中,如果操作失误(冲突合并错了),没关系,重新从本地开发库合并到本地SVN中再进行比较提交。
方法2 直接在开发库提交
缺点: 1)比较危险。因为我们是直接对本地开发库进行操作,万一在提交过程中发现错误了(比如冲突合并错了或代码删错了),则可能就没的恢复了。 2)不容易发现提交遗漏的情况.因为编译的时候,由于是代码都在本地,不容易发现代码提交遗漏
优点: 提交比较快,不用通过中转
所以推荐使用方法1。
附注:一般,我们提交代码时,为了减少合并冲突,最好都在群里告知项目组其他同学我要提交代码了,这样别人可以有意避开
经常从SVN上取最新代码下来后发现编译过不去,查找提交log找到之前提交的人,了解其提交代码的流程后,发现SVN代码提交流程有点问题. SVN代码提交虽然简单,但是如果没严格按照步骤来的话,很容易出错,出现代码覆盖,遗漏提交的情况。现在整理一个SVN提交代码流程的精简的版本。
有2种方法,推荐方法1。
方法1 通过本地SVN代码库中转提交:
1。本地SVN代码库更新
为了方便代码提交,建议本地维护一个与SVN对应的,只用来存放最新代码的本地SVN代码库(不做开发用)。其作用主要是用来在每次代码合并前,先从SVN上取最新代码。
(代码更新完毕后,如果修改不多,合并时间不会太长,则可以把代码库锁定:代码库文件夹右键--TortoiseSVN--Get lock...;如果修改太多,合并时间比较长,建议不要锁库)
2。合并本地开发库代码到本地SVN代码中
本地开发库代码可能是我们在一个月前,半个月前与SVN同步过,但是现在可能不一样了。我们现在要做的,是把本地开发库中的代码合并到前面1中的那个SVN代码库中去。
这里有一个非常重要的原则:合并代码的时候,我们只处理那些我们确认是我们自己新增的,修改的,删除的代码到本地SVN库中。任何不是我们做的修改,我们一律不要去动它。
比如有一段代码我们我们开发的时候没有,但是现在本地SVN库里有,那我们不要去删除它,而是忽视它,因为它应该是其他人新增上来的。
(说明:如果碰到修改冲突,这个不多,如果是遇到这个情况,应该考虑如何把我们的修改加入到最新代码上去)
3。编译本地SVN库代码
编译通过了才能提交到。这个可以防止提交遗漏,保证其他人从SVN上取下来的文件都可以编译通过。
4。合并本地SVN代码到服务器SVN代码库中
现在,我们本地SVN代码库中已经有了我们本地要提交的代码了。
如果我们之前有锁库了,则可以直接就把代码提交上去了(提交时记得写上日志,以便后面修改调阅)。
如果之前没锁库,这个时候还不能马上就提交了。因为这个时候可能其他人又提交代码了。所以,我们要先把这个代码与服务器SVN的代码再diff一下,以确保要提交的内容就是我们修改的内容。
说明:如果发现有变动,则重复上面1,2,3,4操作。
5。提交完毕
如果有锁库,则要进行解锁。
方法2 直接在开发库提交:
1。直接更新本地开发库代码
更新过程中,可能会发现不少提示冲突的。
更新完毕,如果修改不多,像上面方法1的1一样,可以把库锁定。
2。备份冲突
逐一找出提示冲突的那些文件(比如test.cpp),ctrl+c,ctrl+V一下(多出个 复件 test.cpp来),把test.cpp删掉
3。解决冲突
等把所有有冲突的文件备份过后,重新更新所有代码,这时那些有冲突的文件都将回到目前最新的版本中。
把备份的文件(复件 test.cpp)和目前最新文件test.cpp进行对比,把属于我们的修改的代码合并到test.cpp中去。当然,如果功能冲突,则要考虑我们的修该该做如何变动。
如果仅仅是修改位置冲突,则挪下位置就可以了。
4。编译代码
编译有问题则要进行修改。
5。提交代码
如果之前有锁库,则可以填上日志,直接提交。
如果没锁库,则在提交之前还要再diff一下,以确保要提交的内容都是我们自己修改的内容。
PS: 如果中间又有人做修改,则重复1,2,3,4,5操作。
6。提交完毕
如果有锁库,则要进行解锁。
方法1和方法2的比较:
方法1 通过本地SVN代码库中转提交
缺点: 浪费空间
优点: 比较安全。比如我们在进行提交到服务器SVN代码库中,如果操作失误(冲突合并错了),没关系,重新从本地开发库合并到本地SVN中再进行比较提交。
方法2 直接在开发库提交
缺点: 1)比较危险。因为我们是直接对本地开发库进行操作,万一在提交过程中发现错误了(比如冲突合并错了或代码删错了),则可能就没的恢复了。 2)不容易发现提交遗漏的情况.因为编译的时候,由于是代码都在本地,不容易发现代码提交遗漏
优点: 提交比较快,不用通过中转
所以推荐使用方法1。
附注:一般,我们提交代码时,为了减少合并冲突,最好都在群里告知项目组其他同学我要提交代码了,这样别人可以有意避开
相关文章推荐
- 代码提交SVN流程
- SVN代码提交流程
- SVN代码提交流程
- SVN代码提交流程
- GIT / SVN 代码提交的注释怎么写
- svn代码冲突,不能提交的解决方案
- Apache+SVN+Review Board代码审核服务器搭建流程
- Eclipse下的SVN提交代码报错问题
- SVN的代码正确提交方法
- Linux - Redmine使用方式 | SVN提交代码
- 公司开发时候,使用svn进行版本控制,在提交代码的时候应该注意的问题,总结!!!!
- Eclipse恢复已删除的文件和代码、svn使用了还原,但本地的没有提交找回没提交代码的方法
- Ubuntu Server 中实现自动部署提交到SVN的代码
- windows端搭建svn服务器 客户端xcode利用svn提交项目到服务端 流程全纪录
- SVN 第一次提交代码
- Intellij IDEA使用git提交代码流程
- svn自动提交WEB应用代码
- eclipse中向svn提交代码冲突的解决
- 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
- centOS 搭建SVN服务器,提交自动发布代码,详细教程,及注意事项