我有一个文件夹是svn中一个项目的一部分,它已被移动到另一个文件夹/存储库以便在项目之间共享。我想在svn w / a symlink中替换这个目录,但是当我尝试这样做时,我收到这条消息:
svn: Entry '/project/wwwdocs/js' has unexpectedly changed special status
如何用符号链接替换此目录?
答案 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