如何在svn中将文件夹切换到符号链接

时间:2011-03-15 13:21:35

标签: svn

我有一个文件夹是svn中一个项目的一部分,它已被移动到另一个文件夹/存储库以便在项目之间共享。我想在svn w / a symlink中替换这个目录,但是当我尝试这样做时,我收到这条消息:

svn: Entry '/project/wwwdocs/js' has unexpectedly changed special status

如何用符号链接替换此目录?

4 个答案:

答案 0 :(得分:17)

以下设置每个符号链接上的特殊属性,并将其删除到普通文件/目录上。有多种方法可以确定要操作的文件。

svn_special_files=`svn propget --recursive svn:special | cut -d' ' -f1`
for i in `find . | grep -v "\.svn" | cut -d'/' -f2-`; do
  is_special=false
  for j in $svn_special_files; do 
    if [ "$j" = "$i" ]; then 
      is_special=true; 
      break; 
    fi
  done
  if [ -h $i ] ; then
    ! $is_special && svn propset svn:special '*' $i
  else
    $is_special && svn propdel svn:special $i
  fi
done

答案 1 :(得分:15)

为了让subversion获取更改并检测符号链接,您需要先删除原始文件,提交删除,然后更新存储库。之后,您应该可以添加符号链接而不会出现任何问题。

编辑:这个问题似乎之前已经被问过并得到了一些体面的反馈。看看:Commit symlink into subversion

答案 2 :(得分:1)

您甚至可以尝试删除罪魁祸首文件的简单答案 -

svn remove --force <file>

这对使用SVN cli的Windows用户特别有用。

答案 3 :(得分:0)

你可以执行命令打击来解决这个问题。

svn propset svn:special on /project/wwwdocs/js