SVN update commit 相关问题
在使用svn过程中我有一个疑问:比如说我跟同事同时开发一个项目。我今天在A类中写了123块代码,我同事也在A类写了3456这些块代码。如果今天晚上我update,请问是不...
在使用svn过程中我有一个疑问:比如说我跟同事同时开发一个项目。我今天在A类中写了 1 2 3块代码,我同事也在A类写了 3 4 5 6这些块代码。如果今天晚上我update,请问是不是我的A类中123 就被他的 3 4 56给覆盖了?如何避免 处理这些问题
展开
1个回答
展开全部
svn有冲突检测机制,不会导致你的内容被覆盖。
SVN的冲突检测机制是这样的,当两个人修改同一个文件时:
1、如果A先修改,然后commit;然后B执行了update,B在获得的新版本上进行修改,然后commit。这样的话,大家都相安无事,互不干扰。
2、如果A、B同时也修改了这个文件的同一个版本,然后A先commit了,随后B执行commit时,会收到一个commit失败的报错信息,告诉B不是最新版本,需要先进行update操作,B进行update后会看到有些文件被标注为冲突状态,如果是文本文件的话,B打开这些文件还会看到具体是哪些行发生了冲突,B可以手动合并两个人的修改,然后将冲突的文件标记为冲突已解决,再次commit,这时就可以成功提交了。
虽然有冲突检测机制,但经常发生冲突也是让人很不爽的事情。因此SVN建议大家每次修改之前,先update一下,以获得最新版本,同时在修改完成后,尽快commit,这样可以大大减少冲突的发生。
最后,SVN还有一个锁定机制,A在准备修改某文件时,可以先对这个文件上锁,修改完成commit后会自动解锁,而在上锁期间,如果B执行了update,会看到文件被锁定为只读状态,从而避免相互干扰。但这个上锁是君子协定,如果A上锁后长期不commit,B也可以选择强行解锁或偷锁。
SVN的冲突检测机制是这样的,当两个人修改同一个文件时:
1、如果A先修改,然后commit;然后B执行了update,B在获得的新版本上进行修改,然后commit。这样的话,大家都相安无事,互不干扰。
2、如果A、B同时也修改了这个文件的同一个版本,然后A先commit了,随后B执行commit时,会收到一个commit失败的报错信息,告诉B不是最新版本,需要先进行update操作,B进行update后会看到有些文件被标注为冲突状态,如果是文本文件的话,B打开这些文件还会看到具体是哪些行发生了冲突,B可以手动合并两个人的修改,然后将冲突的文件标记为冲突已解决,再次commit,这时就可以成功提交了。
虽然有冲突检测机制,但经常发生冲突也是让人很不爽的事情。因此SVN建议大家每次修改之前,先update一下,以获得最新版本,同时在修改完成后,尽快commit,这样可以大大减少冲突的发生。
最后,SVN还有一个锁定机制,A在准备修改某文件时,可以先对这个文件上锁,修改完成commit后会自动解锁,而在上锁期间,如果B执行了update,会看到文件被锁定为只读状态,从而避免相互干扰。但这个上锁是君子协定,如果A上锁后长期不commit,B也可以选择强行解锁或偷锁。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询