SVN更新已移动文件异常:执行svn up后目标文件未检出求助
问题原因
你执行mv xyz.py xyz_old.py后,SVN工作副本的状态数据库里,xyz.py被标记为已缺失(missing)。运行svn up xyz.py时,SVN会对比本地工作副本记录的文件版本与服务器版本:如果两者一致,即便本地物理文件已被移走,也不会重新拉取文件,只会提示“At revision...”。
解决方案
保留xyz_old.py的情况
直接让SVN恢复该文件到工作副本:
svn revert xyz.py
这个命令会忽略本地对该文件的所有变更(包括移走文件的操作),从SVN服务器重新拉取对应版本的xyz.py,同时保留你重命名后的xyz_old.py。
不需要保留xyz_old.py的情况
先删除旧文件再更新:
rm xyz_old.py svn up xyz.py
也可以直接用上面的svn revert命令,效果一致。
规范操作建议
如果后续需要重命名版本控制中的文件,不要用系统mv命令直接操作,应该使用SVN自带的重命名命令:
svn mv xyz.py xyz_old.py svn commit -m "rename xyz.py to xyz_old.py"
这样SVN会跟踪文件的重命名记录,后续操作就不会出现文件缺失的问题。
内容的提问来源于stack exchange,提问作者Venkatarao Dadi
相关产品推荐
相关产品推荐

