SVN – ошибка не рабочей копии
-
21-08-2019 - |
Вопрос
Я рву на себе волосы из-за этого.
У меня есть сайт, версия которого контролируется с помощью Subversion.Я использую aptana (eclipse, subclipse) для выполнения svn.Я проверял и удалял файлы, обновлял и т. д., и все в порядке.Однако система, которую мы строили, добавляла свои собственные файлы и папки.
Когда я пытаюсь это совершить, он говорит мне: <path>
это не рабочая копия.Если я попытаюсь выполнить очистку, то выдаст ту же ошибку.Я обнаружил, что могу вручную добавить каждый файл в систему контроля версий, но это вызывает ту же ошибку.Обновление не помогает, обновление рабочей области тоже ничего не дает.Очистка, кажется, прекращается после ошибки, а затем каталог блокируется.
Я знаю, что вы должны добавлять файлы с помощью SVN, но как же вы работаете с сгенерированными файлами?Как мне это обойти»<folder>
это не ошибка каталога рабочей копии?Как мне заставить Subversion просто просматривать файлы и добавлять их в свой репозиторий?
Решение
Если вы хотите, чтобы сгенерированные файлы были добавлены в SVN, используйте svn add
рекурсивно добавлять их — это гарантирует, что все каталоги являются частью рабочей копии, а все файлы и каталоги добавляются в SVN и будут зафиксированы как часть следующей svn commit
.
Однако часто генерируемые файлы и папки не следует добавлять в SVN, поскольку они генерируются от исходные файлы как часть сборки.В этом случае вам следует отметить значком СВН: игнорировать чтобы они не были частью рабочей копии.
Другие советы
У нас возникла эта проблема сегодня, когда я пытался добавить папку «A», в которой у меня не было разрешения на запись (поэтому она не могла создать папку A/.svn).
Запуск статуса svn дал мне знак «~» рядом с папкой A.Запуск очистки svn показал, что родительский элемент A заблокирован.
В итоге получилось следующее:
cp -r A A~ # backup, since A was not in the repo
rm -rf A # removed locked directory
svn rm A # remove A from pending commit
mv ~A A # restore backup
svn add A # re-add to pending commit
svn cleanup # (had to cleanup several parent folders higher as well)
А не ошибка рабочей копии означает, что текущая папка не была правильно инициализирована СВН.
Чтобы исправить ошибку, просто переименуйте текущую папку, а затем получить правильную рабочую копию проекта из СВН делая проверить проекта.
После этого при извлечении будет создана правильно настроенная рабочая копия этого проекта.
Я только что столкнулся с ошибкой «не рабочая копия» в моей, хм, рабочей копии.Это было для проекта JDeveloper, и оказалось, что обновление JDeveloper (11.1.1.2.0), которое я только что установил, включает более позднюю версию SVNKit, чем та, которую я использую для доступа к SVN из командной строки (jsvn).Поэтому JDeveloper незаметно обновил формат файлов .svn, а это означало, что клиент командной строки не мог их понять.Пенни упал, когда jsvn пожаловался на отсутствие файла «.svn/format» в каталоге верхнего уровня моего проекта.Я нашел кучу таких в подпапках, все они выглядели одинаково и содержали только цифру «9».Поэтому я скопировал один из них в папку верхнего уровня, и jsvn наконец выдал соответствующее сообщение:"СВН:Этот клиент слишком стар для работы с рабочей копией '.';пожалуйста, установите новый клиент Subversion».Как только я определил (через Google) и установил совместимый клиентский уровень SVNKit, новый улучшенный jsvn смог распознать, что моя рабочая копия на самом деле ЯВЛЯЕТСЯ рабочей копией.Мораль истории:Если вы получаете эту ошибку и используете разные клиенты SVN на одном компьютере, проблема может заключаться в том, что они не синхронизированы.
Столкнулся с этим сейчас, используя TortoiseSVN, очищая несколько мертвых каталогов.Я сделал резервную копию файлов, а затем использовал браузер Rep, чтобы удалить неисправный каталог (который в любом случае провалился).После этого очистка проекта сработала, и теперь я могу продолжить работу со своими текущими файлами.
Пожалуйста, попробуйте выяснить, в чем проблема.Это отсутствующий файл .svn или что-то еще.Помните, что файл .svn создается, когда вы завершаете регистрацию.и содержит соответствующий путь к каталогу, кодовые имена с присвоенным им уникальным номером.Перейдите к базовому пути вашего проекта, который, по вашему мнению, успешно проверен.Создайте новый временный пакет и добавьте по этому пути пример Java-кода.Добавьте в версию и попробуйте закоммитить.Если вы получаете сообщение об ошибке, сообщающее, что папка заблокирована (попытка заблокировать уже заблокированную папку), перейдите в папку .svn и переименуйте файл блокировки.Попробуйте еще раз зарегистрироваться и зафиксировать
Если все работает нормально, то все готово.Используйте тот же базовый каталог и снова зарегистрируйте свой код из этого каталога на уровень вашей папки после очистки.
«Не рабочая копия» означает, что одно из мест, где ваша IDE пытается запустить svn
в не контролируется svn
сам по себе (например, добавление файлов в подкаталог, расположенный не в svn
).Я бы посоветовал проверить свои пути в IDE.
Поскольку я выполняю все задачи с помощью визуальных инструментов, я не могу сказать вам, какие команды необходимо выполнить.
Это моя среда, Windows XP.tortoiseSVN 1.6.7 с Subversion 1.6.9, Eclipse 3.5 с Subclipse 1.6.10.и хранилище управляется с помощью визуального сервера SVN поверх Windows.
- На сервере Visual SVN я удалил папку который был создан другим инструментом (в этом и была проблема, как и сказала Келтия).
- В проводнике Windows щелкните правой кнопкой мыши мой проект и выберите параметры черепахового SVN. обновлять.Этим действием папка удалилась в моей рабочей копии.
- Преданный все мои изменения.
- запустил инструмент, который создать папку (снова).
- с черепаховым SVN, который я отметил значком добавить в список игнорирования.
Надеюсь это поможет.
в моем случае я перемещаю место рабочей области eclipse в другое, тогда возникает проблема.Для решения проблемы я проверяю проект из репозитория svn.Потом в старом проекте чищу все svn файлы.(простой поиск .svn и удаление), затем я копирую содержимое в только что извлеченный файл, мои изменения становятся видимыми, и мой проект актуален.Этот метод можно применить и для других досадных ошибок.Надеюсь помочь кому-нибудь
пожалуйста move
текущий каталог в другом месте и выполните svn update
команда, затем замените каталог перемещенным каталогом
если использовать tortoisteSVN
, перед запуском обновления svn вы можете запустить очистку корневого каталога