SVN代码提交流程

前言:

经常从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。

附注:一般,我们提交代码时,为了减少合并冲突,最好都在群里告知项目组其他同学我要提交代码了,这样别人可以有意避开

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值