本地开发环境出现一个问题,用revert完美解决。
问题描述:
文件static/image/common/jiqiaodaren.png已经被提交到svn上,但是我的开发环境因未与svn同步,所以没有这个文件。
而且我没有确认这个文件是否已存在svn上,错误地认为这个文件是个新文件。
我做了以下操作:
1,svn add static/image/common/jiqiaodaren.png
2,svn ci static/image/common/jiqiaodaren.png -m ''
第1步未提示,第2步提示:
新增 (二进制) static/image/common/jiqiaodaren.png
svn: 提交失败(细节见下):
svn: 文件“/svn/***/trunk/static/image/common/jiqiaodaren.png”已存在
===问题描述完毕===
中间步骤
于是我删除本地文件,获得svn上更新。
1,rm static/image/common/jiqiaodaren.png
2,svn up static/image/common/jiqiaodaren.png
svn: 不能复制“static/image/common/.svn/text-base/jiqiaodaren.png.svn-base”到“static/image/common/.svn/tmp/jiqiaodaren.png.tmp.tmp”: 没有那个文件或目录
之后胡乱尝试
1,svn up static/image/common/jiqiaodaren.png
svn: 不能复制“static/image/common/.svn/text-base/jiqiaodaren.png.svn-base”到“static/image/common/.svn/tmp/jiqiaodaren.png.tmp.tmp”: 没有那个文件或目录
2,svn st static/image/common/jiqiaodaren.png
! static/image/common/jiqiaodaren.png
3,svn up static/image/common/jiqiaodaren.png
已还原“static/image/common/jiqiaodaren.png”
svn: 无法新增文件“static/image/common/jiqiaodaren.png”:同名物件已存在
4,svn st static/image/common/jiqiaodaren.png
A static/image/common/jiqiaodaren.png
===中间步骤完毕===
解决
直到遇到这个命令:
1 svn revert static/image/common/jiqiaodaren.png
已恢复“static/image/common/jiqiaodaren.png”
2 svn st static/image/common/jiqiaodaren.png
? static/image/common/jiqiaodaren.png
3 svn up static/image/common/jiqiaodaren.png
svn: 无法新增文件“static/image/common/jiqiaodaren.png”:同名物件已存在
4 rm static/image/common/jiqiaodaren.png
5 svn up static/image/common/jiqiaodaren.png
A static/image/common/jiqiaodaren.png
更新至修订版 1384。
不知道原理,反正是解决了。我勒个去
===解决===
现象描述
现象:
在svn服务器上同事删掉了我的分支,然后又恢复回我的分支到新的版本。我本地环境还是原先的版本。
现在我的本地版本是100,服务器的版本是200。
问题:执行 svn update 提示有冲突,svn commit也提示:SVN commit:remains in tree-conflict
===现象描述结束===
解决
解决:
1,我的本地版本放到临时目录(src_bak)中:rsync -r myBranch/ src_bak/ --exclude=".svn"
2,删除我的本地版本:rm -rf myBranch/*
3,更新本地版本库到最新:svn update myBranch/*
4,执行文件恢复命令:svn revert myBranch --depth infinity
5,检查文件状态:svn status
发现没有冲突,和checkout的效果一样。解决
===解决结束===
===总结如下===
如果本地修改了某个文件未提交,服务器上同时提交了同一文件的修改,正常来讲,svn up就能列出不一致的文件,或者是M状态,或者是C状态,或者是可以merge的。
但某些情况下,本地的版本和远程的版本无法合并,这个时间通常已经有本地svn操作,但无法合并到server端。这种情况下就需要把本地的提交撤销,命令是:svn revert [-R] file。
思路就是:先备份要提交的文件,然后revert,删除本地文件,update,commit。
如果文件很多,先备份这个目录,删除本地文件,update,revert -R,commit。