SVN X仍然存在树冲突

时间:2010-04-13 01:42:18

标签: svn tortoisesvn visualsvn-server tree-conflict

我正在使用VisualSVN(使用Tortoise)。我不小心将文件夹移动到其他位置。当试图将其移回时,SVN会发现此错误。它发生过一次,我设法做了一些随机的更新/提交,不知道我在做什么,它是“修复”。我不能再次使用相同的魔法,所以我需要知道如何获取我的文件和目录以及树冲突。

谢谢!

6 个答案:

答案 0 :(得分:17)

我不确定它现在处于什么状态,但你最好的选择可能是:

  1. 将文件夹完全移出存储库
  2. 执行svn cleanup
  3. 执行svn update
  4. 从文件夹中复制文件(不包含.svn文件),覆盖刚刚更新过的旧源文件。

答案 1 :(得分:15)

我遇到了同样的错误(树冲突),但来自不同的工作流程。

查找具有锁定的进程。下载Handle.exe,并打开您解压缩到的文件夹。然后运行"C:\path\handle.exe" "C:\path\FileOrFolder"

https://technet.microsoft.com/en-us/sysinternals/bb896655.aspx

要重现的工作流程:

- delete folder (having one of the files locked by a program that is within this folder)
- commit parent folder of folder you deleted, and look for red text of the folder you deleted (it should be brown, not red if there aren't issues in SVN)

修复:

- forcefully kill the lock (or close the program so it releases the lock)
- run cleanup command on folder you deleted
- revert folder you deleted
- delete folder you deleted
- commit parent folder of folder you deleted

答案 2 :(得分:2)

http://rubyjunction.us/subversion-hell-sh

修改

这是来自链接的shell脚本,这对Linux / Unix用户很有用......

#!/bin/sh

if [ "" == "$1" ] ; then
  echo "Usage: subversion-hell.sh A_PROJECT"
  echo "A_PROJECT should be a Subversion folder you are having problems with,"
  echo "and you should be in the folder above A_PROJECT"
fi

DIR=`pwd`
PWD=$DIR
DIR=`echo $DIR | sed s/^.*\\\/trunk/trunk/`

mkdir ~/tmp/       2>/dev/null
rm -Rf ~/tmp/$1   2>/dev/null
mv ~/$DIR/$1 ~/tmp/
find ~/tmp/$1/ -iname '.svn*' -exec rm -Rf {} \; 2>/dev/null
cd $PWD
echo svn co YOUR_URL_HERE/$DIR/$1 $1
svn co YOUR_URL_HERE/$DIR/$1 $1
cp -Rf ~/tmp/$1/* $PWD/$1/

# YOUR_URL_HERE can be found by looking in file .svn/entries, near the top

答案 3 :(得分:1)

我试图删除linux环境中的分支时遇到了同样的问题。我做的是:

  1. svn revert branch
  2. svn up
  3. svn cleanup
  4. svn删除分支 - 标记 分支再次移除
  5. svn ci
  6. 我不知道问题是什么,但我在两周内经历了两次。

答案 4 :(得分:0)

保留已移动的文件夹的备份。现在在SVN中,单击TortoiseSVN>>已解决。 选择文件/文件夹并解决。现在更新/提交svn数据。

答案 5 :(得分:0)

请注意,即使您“没有做任何事情”,也可能发生这种情况-也就是说,有人在存储库中的文件夹中四处移动,而您对此一无所知。发生在我身上。在这种情况下,请从存储库和svn update中删除问题文件夹。

  

开发人员移动/重命名/删除文件时发生树冲突   或文件夹,另一个开发人员也有   移动/重命名/删除或刚刚修改。有很多不同   可能导致树冲突的情况,所有这些都需要   解决冲突的不同步骤。