SVN: Папка уже находится под контролем версий, но не подходит? - PullRequest
110 голосов
/ 09 февраля 2011
mark@mark-ubuntu:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

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

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

Ответы [ 7 ]

160 голосов
/ 09 февраля 2011

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

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

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

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

20 голосов
/ 17 ноября 2011

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

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

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

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

Примечание

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

Вариация ответа @ gauss256 , удаление .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
14 голосов
/ 12 февраля 2012

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

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

find troublesome_folder -name .svn -exec rm -rf {} \;
3 голосов
/ 09 февраля 2011

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

3 голосов
/ 09 февраля 2011

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

0 голосов
/ 12 января 2016

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

Открытое затмение: Сначала попробуйте добавить модуль project / maven в систему контроля версий. (Проект -> Контекстное меню -> Команда -> Добавить в контроль версий)

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...