svn revert

本地开发环境出现一个问题,用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。

原文地址:https://www.cnblogs.com/helww/p/3384352.html