SVN: Папка уже находится под контролем версий, но не идет?

[email protected]:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
[email protected]:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

svn stat говорит, что он не находится под управлением версиями, поэтому я пытаюсь добавить его, а затем он говорит мне об этом. Когда я делаю svn ci, он не возникает и не появляется, когда я пытаюсь перейти к репозиторию в Интернете.

Как мне его совершить?

Ответ 1

Скопируйте проблемную папку в некоторый каталог резервных копий и удалите ее из рабочего каталога SVN. Не забудьте удалить все скрытые каталоги .svn из скопированной папки.

Теперь обновите свой проект, очистите и зафиксируйте, что осталось. Теперь переместите папку обратно в рабочий каталог, добавьте ее и скопируйте. В большинстве случаев это обходное решение работает, кажется, что в основном SVN запутался...

Обновление: цитирование комментария @Mark:

Не нужно было перемещать папку, просто удалив папку .svn, а затем svn-добавив ее.

Ответ 2

У меня возникла аналогичная проблема после добавления дерева каталогов, содержавшего каталоги .svn(потому что это была svn: external в исходной среде): Статус svn сказал мне "?", но при попытке добавить его он уже "находился под управлением версиями".

Так как никаких других версий каталогов не было, я сделал

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \;

удалить неправильные каталоги .svn; после этого мне удалось добавить новый каталог.

Примечание

  • Если содержатся другие каталоги версий, выражение поиска должно быть изменено, чтобы быть более конкретным
  • Если вы не уверены, сначала опустите часть "-exec...", чтобы увидеть, что будет удалено.

Ответ 3

Вариант @gauss256 answer, удалив .svn, работал у меня:

rm -rf troublesome_folder/.svn
svn add troublesome_folder
svn commit

До решения Гаусса я попробовал @jwir3 подход и не получил радости:

svn cleanup
svn cleanup *
svn cleanup troublesome_folder
svn add --force troublesome_folder
svn commit

Ответ 4

(1) Это случилось со мной, и я подумал, что интересно, как это произошло. В основном я скопировал папку в новое место и изменил ее, забыв, что она будет содержать все скрытые каталоги .svn. Как только вы поймете, как это происходит, его легче избежать в будущем.

(2) Удаление каталогов .svn - это решение, но вы должны сделать это рекурсивно вплоть до дерева каталогов. Самый простой способ сделать это:

find troublesome_folder -name .svn -exec rm -rf {} \;

Ответ 5

Вы пытались выполнить очистку svn?

Ответ 6

Проверьте папку "apps/autocomplete/.svn". Переместите его в безопасное место (если вам нужно его восстановить, потому что это не сработало) и посмотрите, устраняет ли это проблему.

Ответ 7

Я нашел решение, если вы установили Eclipse (Luna) с SVN-клиентом JavaHL (JNI) 1.8.13 и Tortoise:

Открыть Eclipse: Сначала попробуйте добавить модуль project/maven в Control Version (Project → Контекстное меню → Команда → Добавить в контроль версий)

Вы увидите следующее сообщение об ошибке Eclipse:

org.apache.subversion.javahl.ClientException: запись уже существует svn: "PathToYouProject" уже находится под управлением версиями

После этого вы должны открыть свой каталог рабочей области в своем проводнике, выбрать свой проект и разрешить его через Tortoise (Проект → Контекстное меню → TortoiseSVN → Разрешить)

Появится следующее диалоговое окно сообщения: "Список файлов пуст"

Нажмите "Отменить" и обновите проект в Eclipse. Ваш проект должен снова находиться под контролем версий.

К сожалению, невозможно одновременно решить больше одного проекта... вам не нужно ничего удалять, но в зависимости от размера вашего проекта это может быть немного трудоемким.