svn: чистый способ заменить внешнюю локальную папку с таким же именем

У меня есть репозиторий, проверенный в разных местах. У меня есть папка X, которая является внешней по отношению к другому репозиторию. Я хочу, чтобы X был локальным. Есть и другие вопросы, но они, кажется, не столкнулись с моими трудностями.

Что я сделал, так это отредактировал svn:externals и удалил эту строку. Затем я совершил репо. Затем я взял папку, удалил в ней все .svn записи (чтобы сделать ее обычной папкой), svn add отредактировал ее, а затем зафиксировал. Это сработало нормально.

Однако, когда я обновил другую проверку репозитория, я столкнулся с проблемами. Первая ошибка была примерно такой:

UUID mismatch: existing directory XXX was checked out from a different repository.

Ок, уже svn up не получается, но я пытаюсь удалить папку и обновить заново. Теперь ему удается повторно получить все содержимое, но теперь я получаю новую ошибку:

Can't remove file XXX: Access is denied

Пробую обновить еще раз, ничего не происходит. Я удаляю файл в этой папке и снова обновляю из корня, ничего не происходит. Я удаляю папку X, и ничего не происходит - так, кажется, только что про нее забыли! Мой единственный выход - удалить корневой каталог X и повторно svn up с уровня ниже (поскольку все это также происходило в подпапке, которая также была внешней).

Нехорошо.. Я не хочу делать какие-то ручные махинации на всех сайтах, где проверен этот репозиторий. Что делать?


person Claudiu    schedule 13.01.2011    source источник


Ответы (2)


Возможно, не самое чистое решение, но оно работает:

  • Удалите внешнюю папку в вашей локальной копии (НЕ используйте папку svn rm)
  • Обновление версией из репозитория
person Paulo Fidalgo    schedule 30.01.2012

Не уверен, что это сработает, но попробовать стоит.

Попробуйте обновиться до той ревизии, где удалили экстерналы, после этого сделайте свое обновление в голову.

// XX revision of the externals deletion
svn update -rXX 
// to see if the folder is deleted
svn status
// delete the folder if he is on the local working copy
svn rm folder
// Update to head
svn update
person yvoyer    schedule 13.01.2011