SVN - ошибка рабочей копии
Я вытаскиваю свои волосы на этом.
У меня есть сайт, который контролируется версиями с помощью Subversion. Я использую aptana (eclipse, subclipse) для выполнения svn. Я проверяю файлы, обновляю их и т.д., И все в порядке. Однако система, которую мы строили, добавляла свои собственные файлы и папки.
Когда я пытаюсь выполнить их, он сообщает мне, что <path>
не является рабочей копией. Если я попытаюсь выполнить очистку, это даст ту же ошибку. Я обнаружил, что могу вручную добавить каждый файл в элемент управления версиями, но это вызывает ту же ошибку. Выполнение обновления не помогает, обновление рабочей области тоже не делает. Очистка, кажется, умирает после ошибки, а затем каталог заблокирован.
Я знаю, что вы должны добавлять файлы с помощью SVN, но как же вы работаете с сгенерированными файлами? Как мне обойти эту ошибку? <folder>
не является файлом рабочей копии "? Как заставить Subversion просто просматривать файлы и добавлять их в свой репозиторий?
Ответы
Ответ 1
Если вы хотите, чтобы сгенерированные файлы были добавлены в SVN, используйте svn add
для их рекурсивного добавления - это позволит убедиться, что все каталоги являются частью рабочей копии, а все файлы и каталоги добавляются в SVN и будут быть зафиксированным как часть следующего svn commit
.
Однако часто созданные файлы и папки не должны добавляться в SVN, поскольку они генерируются из исходных файлов как часть сборки. В этом случае вы должны отметить svn: ignore, чтобы они не были частью рабочей копии.
Ответ 2
У нас была эта проблема сегодня, когда я попытался добавить папку "A", в которой у меня не было права на запись (поэтому она не могла создать папку A/.svn).
Запуск статуса svn дал мне "~" рядом с папкой A.
Запуск svn cleanup сказал, что родительский элемент 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)
Ответ 3
Ошибка рабочей копии означает, что текущая папка не была правильно инициализирована с помощью SVN.
Чтобы исправить ошибку, просто переименуйте текущую папку, а затем получите правильную рабочую копию проекта из SVN, выполнив checkout проекта.
Затем вы можете создать правильно сконфигурированную рабочую копию этого проекта.
Ответ 4
Я только что столкнулся с ошибкой "не рабочая копия" в моей, гм, рабочей копии. Это было для проекта JDeveloper, и оказалось, что обновление JDeveloper (11.1.1.2.0), которое я только что установил, включил более позднюю версию SVNKit, чем тот, который я использую для доступа к SVN из командной строки (jsvn). Поэтому JDeveloper тихо обновил формат файлов .svn, а это означало, что клиент командной строки не мог их понять.
Пенни упали, когда jsvn пожаловался на отсутствующий файл ".svn/format" в моем каталоге верхнего уровня проекта. Я нашел кучи этих в подпапках, все выглядели одинаково и содержало только цифру "9". Поэтому я скопировал один файл в папку верхнего уровня и jsvn, а затем, наконец, дал соответствующее сообщение: "svn: этот клиент слишком стар, чтобы работать с рабочей копией". "Получите новый клиент Subversion".
Как только я определил (через Google) и установил уровень совместимого клиента SVNKit, новый улучшенный jsvn смог распознать, что моя рабочая копия действительно является рабочей копией.
Мораль истории: если вы получите эту ошибку, и вы используете разные клиенты SVN на одном компьютере, проблема может заключаться в том, что они не синхронизированы.
Ответ 5
Перейдите в это сейчас, используя TortoiseSVN, чтобы очистить некоторые мертвые каталоги. Я сделал резервную копию файлов, а затем использовал браузер rep, чтобы удалить неисправный каталог (который был goner в любом случае). Затем была очищена работа над проектом, и теперь я могу продолжать работать с моими текущими файлами.
Ответ 6
Попробуйте выяснить, в чем проблема. Это недостающий файл .svn или что-то еще.
Помните, что файл .svn создается, когда вы закончили свою регистрацию. и содержит соответствующий путь к каталогу, имена кодов с уникальным номером, помеченным для них.
Перейдите к базовому пути вашего проекта, который, по вашему мнению, проверен в совершенстве.
Создайте новый временный пакет и добавьте образец Java-кода в этот путь.
Добавьте к версии и попробуйте зафиксировать.
Если вы получили сообщение о том, что папка заблокирована (попытка заблокировать уже заблокированную папку), перейдите в папку .svn и переименуйте файл блокировки.
Попробуйте еще раз проверить и зафиксировать
Если все будет хорошо, тогда все будет готово.
Используйте тот же базовый каталог и снова проверите свой код с этого каталога на уровень вашей папки после очистки.
Ответ 7
"Не рабочая копия" означает, что одно из мест, где ваша IDE пытается запустить svn
, не управляется самим svn
(например, добавлением файлов в подкаталог не под svn
). Я бы сказал, проверьте ваши пути в среде IDE.
Ответ 8
В нашей системе используются плагины, которые устанавливаются через систему. Нам всем нужно получить доступ к сгенерированным файлам плагинов, чтобы мы могли видеть, как они добавляются, и если они выполняются правильно и т.д.
Я пробовал команду aptana → добавить к управлению версиями, и она просто бросает ту же ошибку. Есть много небольших файлов, возможно ли svn добавить целую директорию?
Ответ 9
Поскольку я выполняю все задачи с помощью визуальных инструментов, я не могу сказать вам, какие команды нужно выполнять.
Это моя среда, Windows XP. tortoiseSVN 1.6.7 с Subversion 1.6.9, Eclipse 3.5 с Subclipse 1.6.10. и репозиторий управляется визуальным SVN-сервером через окна.
- На визуальном сервере svn я удалил папку, созданную другим инструментом (это была проблема, как сказал Келтия).
- В моем проводнике Windows щелкните правой кнопкой мыши по моему проекту и с вариантами черепахи SVN нажмите update. С помощью этого действия папка была удалена в моей рабочей копии.
- Принято все мои изменения.
- запустил инструмент, который создает папку (снова).
- с черепахой SVN Я отмечен знаком добавить в игнор.
Надеюсь, что это поможет.
Ответ 10
в моем случае я перемещаю место рабочей области затмения в другое, тогда возникает проблема. Для решения проблемы я выхожу в проект svn repo. Затем в старом проекте я очищаю все svn файлы. (простой поиск .svn и delete), тогда я копирую содержимое в только что проверочный файл, мои изменения становятся видимыми, а мой проект обновлен. Этот метод может применяться для других досадных ошибок. Надежда помочь кому-то
Ответ 11
пожалуйста move
текущий каталог в другом месте и выполните команду svn update
, затем замените каталог перемещенным каталогом
если вы используете tortoisteSVN
, вы можете перед запуском обновления svn, запустить очистку корневого каталога