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.
Ваш проект должен снова находиться под контролем версий.
К сожалению, невозможно одновременно решить больше одного проекта... вам не нужно ничего удалять, но в зависимости от размера вашего проекта это может быть немного трудоемким.