同事提交了一些文件,我尝试更新那个目录, 却总是无法更新到他的提交, 一直都是工作空间的内容。而且资源管理器的目录图标显示, 出现变动(就是右上角有个红色的那种)。

难道同事没有提交成功吗? 检查svn log, 发现他确实是成功提交了的。。那就奇怪了!

我把那个目录备份,然后全部删除,再更新,还是有问题,我注意到里面内容 是自己的之前的那个提交的版本(不是svn log中能够查看到的版本。是我在IDEA move 后的版本。)。

搞了很久,搞不清怎么回事。管他三七二十一,尝试提交吧。 却总是提示 svn tree confflect 。。。 让同事备份了他的修改,然后我尝试删除,也无法删除。 clean up 了整个项目, 还是一样。

郁闷了, 我偶然看到了revert, 试了下, 却没报错, 然后update更新目录, 终于得到了 同事的最新提交!!

哦, 这什么情况? 我猜是 我在IDEA的操作引起的。 我在IDEA move 一个新文件(有一些和同事提交的文件重名。)进入那个目录后,其实哪些文件就已经  被add to svn 了, 也就是 加入了 svn 的tree。 虽然没有commit, 但是 它在我本地的svn 是有记录的, 影响到了 svn tree。 故 当同事提交了同名文件,然后我更新那个目录的时候, 就出现了tree conflict。。

---------------------------------------------------------------------------------------------------------------------------------------------------------

补充:

出现tree 冲突:

右键Edit conflicts:

出现:

其实 最上面的一行已经说明了 原因了, 出现这种情况就是因为, 我本地修改了某文件,但是没有提交,后面我更新了这个类,但是这个时候他已经被其他同事删除(而且提交)了。

怎么解决呢? 其实svn提供的选择不多, 一个是 Accept, 也就是 mark as resolved  但是接受当前工作空间拷贝的状态;  另外就是Resolve later,其实就是不解决,稍后处理。

(我发现Accept 之后, 文件的状态还是 Tree conflict, 但是右键直接“mark as resolved” 之后,状态变为 Resolved, 两者应该还是有区别; 还是不太懂 Accept 操作的真正含义)

之后再看这两个文件呢, 发现多了 + 的 图标,应该是状态变成了add,但是未提交:

如果右键 svn commit,则出现:

可见这两个文件已经不存在于 svn 远程仓库,但是本地依然被保留, 本地svn 是可感知的,是已经被add 追踪了的。

怎么解决呢? 很简单,直接删除吧。。

再次执行svn  commit, 发现还是有的:

但是直接提交的话, 会提示 文件不存在: “ not added to the svn ... ”   这个有点奇怪,貌似本地已经added了,但是由于miss, 所以又是无法正常提交到远程, 我决定可以不用理会吧。。

参考:

https://stackoverflow.com/questions/738367/why-am-i-getting-tree-conflicts-in-subversion

svn tree confflect的更多相关文章

  1. SVN Tree Conflict 的分析

    所谓Tree Confict,就是至少有一个人修改了目录结构,包括文件或者文件所在目录的改名.删除.移动.然后Update或Merge的时候就报了Tree Conflict. 介绍一下概念Delete ...

  2. svn tree conflicts 解决方法

    svn resolve --accept working -R XXX. 其中XXX为提示冲突的目录.

  3. svn利用钩子post-commit自动更新到线上测试服务器(测试中未验证)

    创建一个新的版本库: [root@centos03 svn]# pwd /home/svn [root@centos03 svn]# svnadmin create webtest [root@cen ...

  4. svn local obstruction, incoming add upon merge

    http://little418.com/2009/05/svn-local-obstruction-incoming-add-upon-merge.html If you've found this ...

  5. 版本控制系统-SVN(1)

    1.   SVN介绍 1.1.  简介 SVN(subversion),版本管理工具,与CVS一样,SVN是一个可跨平台的开源版本控制系统,Subversion管理随时间变化的数据.这些数据都被放置在 ...

  6. SVN服务器搭建实录

    第一章  SVN介绍 1.1 什么是SVN(subversion) SVN是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个固态的跨平台的开源的版本控制系统.SVN版本管理工具管 ...

  7. svn开发常用整理

    1.删除tortoise svn中的账号信息 其实tortoise svn也是将账号信息存放在本地的配置文件中 在不同的操作系统下,操作基本类似,首先我们来看一下windows下如何操作的. 以win ...

  8. CentOS7集成Apache和SVN

    本文主要介绍如何在CentOS7环境下集成Apache和SVN,完成后可以通过浏览器访问SVN仓库. 1.查看系统环境,关闭防火墙和SELinux. [root@Docker /]# systemct ...

  9. CentOS7 基于 subversion 配置 SVN server

    由于 Window Server 环境下,VisualSVN Server Community 版本只支持 15 个同时在线用户,所以彻底放弃 Windows Server,在 Linux Serve ...

随机推荐

  1. 黄聪:PHP代码获取客户端IP地址经纬度及所在城市

    echo $_SERVER['HTTP_HOST']; //echo $_SERVER['REQUEST_URI']; $getIp=$_SERVER["REMOTE_ADDR"] ...

  2. 黄聪:bootstrapValidator验证成功,按钮变灰却无法提交的问题

    对于这个坑真心无语! 主要问题是按钮的id和name不能为submit! 改成别的就好了!

  3. Django--ORM--模型增删改查--备忘

    以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact.icontains.istartswith.iendswith.insert into tb_bookinfo()valu ...

  4. 获取一个div下的li或者img元素

    上层div的xpath=//*[@id="launchpadOptionsList"] 其下的所有li的最后一个是//*[@id="launchpadOptionsLis ...

  5. 【mongodb】之安装

    export PATH=/opt/mongodb64-3.4.10/bin:$PATHmongod --dbpath data --logpath logs/mongo.log --fork

  6. Ajax的兼容及Ajax的缓存问题

    Ajax的兼容: 在ie 6 7 8 不支持XMLHttpRequest的对象: 他的Ajax内置对象为ActiveXObject("Microsoft XMLHTTP") 除了内 ...

  7. hashMap为啥初始化容量为2的次幂

    原文 https://blog.csdn.net/sd_csdn_scy/article/details/57083619hashMap源码获取元素的位置: static int indexFor(i ...

  8. win7颜色反转

    win7屏幕太亮,整天看电脑看的头疼 利用放大镜实现颜色反转 打开控制面板 //也可'开始'处直接输入输入放大镜进入 选择轻松访问 启用放大镜 选择设置 启用颜色反转 win+'+'增加放大镜的放大倍 ...

  9. BGP属性+13条选路原则(转载)

    原文:http://blog.sina.com.cn/s/blog_be409c2f0102x6sg.html BGP(Border Gateway Protocol)边界网关协议 BGP(Borde ...

  10. Jmeter(十七)Logic Controllers 之 Interleave Controller

    Interleave Controller----交错控制器,对于交错控制器官方文档解释的很清楚,上例子: 可以看到运行一次 Interleave Controller下的Sampler,运行一次 I ...