# svn容易造成代码覆盖的几种情形 ## 一、非法操作 ### 1、不正确的切换svn路径 > 因项目需要,我们可能会遇到项目版本切换;以下的操作行为将会造成代码覆盖: - 小A创建了新的版本,通知大家把项目代码切换到版本new上来; - 小B原先在old版本上开发,得知切换代码版本时,他删除了old版本中的.svn隐藏文件夹; - 然后,小B在old版本路径中,使用new版本的svn地址进行了checkout。你会看到svn的提示信息为versioned。 那么,很遗憾的通知小B,你如果基于这样的代码进行提交,小A在new版本上提交的代码变更会被你覆盖!!希望小A脾气能够好一点。 覆盖原因:非空文件夹进行checkout时,文件夹中的文件version版本会基于svn中的最新版本+1,svn认为你这样操作。 **正确的操作:** 如果你想保留已经开发一半的代码整合到new版项目中,请这样操作: - 新开一个目录,从svn上checkout出new版项目源码或文件; - 将old版项目源码或文件,覆盖到目录new中; - 提交时去掉项目new删除的文件——即对项目new中删除的东西不要做add操作; - 放心提交~