Как переключить папку в symlink в svn

У меня была папка, которая была частью одного проекта в svn, который был перемещен в другую папку/репозиторий для совместного использования между проектами. Я хочу заменить этот каталог в svn w/symlink, но когда я попытаюсь это сделать, я получаю это сообщение:

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

как заменить этот каталог символической ссылкой?

Ответы

Ответ 1

Чтобы подрывная деятельность забирала изменения и обнаруживала символическую ссылку, вам нужно сначала удалить исходный файл, зафиксировать удаление и затем обновить репозиторий. После этого вы сможете добавить символическую ссылку без каких-либо проблем.

РЕДАКТИРОВАТЬ: Этот вопрос, кажется, был задан раньше и получил некоторые приличные отзывы. Проверьте это: Фиксировать символическую ссылку в подрывную деятельность

Ответ 2

Следующее задает специальное свойство на каждой символической ссылке и удаляет его в обычных файлах/каталогах. Существуют различные способы определения файлов для работы.

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

Ответ 3

Вы даже можете попробовать простой ответ об удалении файла culprit -

svn remove --force <file>

Это особенно полезно для пользователей Windows, использующих SVN cli.

Ответ 4

Вы можете выполнить команду для устранения этой проблемы.

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