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也可以选择强行解锁或偷锁。