Файлы больше не находятся под контролем версий, после обновления в Eclipse
У меня есть следующая проблема:
Я использую Eclipse с установленным плагином Subclipe SVN. Когда я обновляю источники вне Eclipse, (например, делаю svn update
в рабочей копии) и "обновить" в Eclipse, кажется, что все источники больше не находятся под контролем версий. Все они получили знак вопроса и опцию "добавить к управлению версиями...". Когда я пытаюсь выполнить обновление или какую-либо другую операцию подрывной деятельности, я получаю следующее сообщение об ошибке:
org.tigris.subversion.javahl.ClientException: svn: '/home/tim/workspace/myproject' is not a working copy
svn: Cannot read from '/home/tim/workspace/myproject/.svn/format': /home/tim/workspace/myproject/.svn/format (No such file or directory)
org.tigris.subversion.javahl.ClientException: svn: '/home/tim/workspace/myproject' is not a working copy
svn: Cannot read from '/home/tim/workspace/myproject/.svn/format': /home/tim/workspace/myproject/.svn/format (No such file or directory)
Когда я отключаю проект и делюсь им снова, все возвращается на круги своя. Я думаю, это может быть конфликт версий между интегрированной библиотекой Subversion SVN и версией svn-command, верно?
Итак, мой вопрос: как я могу вернуть это к работе должным образом?
Версии:
Eclipse 3.5.1 Subclipse 1.4.8 Клиентский адаптер Subversion 1.5.3 Адаптер собственной библиотеки Subversion (JavaHL) 1.5.7 Клиентский адаптер SVNKit 1.5.6.1 Библиотека SVNKit 1.2.3.5521
SVN, версия 1.6.5 (r38866) 31 августа 2009, 18:42:02
недавно обновлен до Ubuntu 9.10 Karmic
РЕДАКТИРОВАТЬ:
Только что проверил в другом рабочем пространстве. Когда я делаю svn update
, файл с именем "format" будет удален.
РЕШИТЬ:
Как отметил jor, проблема заключалась в конфликте версий. Я уже пытался найти обновления в Eclipse, но это не сработало, потому что Subclipse изменяет сайт обновлений для каждой точки выпуска. Как вы можете прочитать здесь:
Рекомендуемая процедура обновления Subclipse до новой версии 1.x - 1.y - следовать инструкциям по первой установке. Введите URL-адрес сайта обновлений для нового потока выпуска в диспетчере обновлений Eclipse, и он установит новую версию поверх существующей установки. Этот процесс работает более надежно, чем запрос Eclipse для проверки обновлений.
2 ответа
Да , вам нужно обновить ваши подключаемые модули subclipse и svn, либо javahl (1.6.x), либо svnkit (1.3.x), чтобы они соответствовали вашей установленной subversion (1.6.5). См. Сайт проекта для URL-адресов сайта обновления, если у вас их еще нет.
Или понизьте ваш пакет Ubuntu Subversion, но я бы не советовал делать это.
Ситуация состояла в том, что я работал над файлом, который кто-то еще удалил под управлением версией SVN. Это прекрасно, так как я лишь поверхностно модифицировал юнит-тесты в этом файле.
Под затмением я написал и обновил, который удалил рассматриваемый файл.
Последующее использование SVN при затмении показало, что рассматриваемый файл больше не существует в системе контроля версий. Это прекрасно, поскольку, как оказалось, больше не существует в моей файловой системе. Так почему это было жаловаться?
Файл не был в моей файловой системе, но "svn update" продолжал жаловаться, что файл не находится под контролем версий:
svn update
svn: 'blah blah blah...' is not under version control
Решением этой проблемы (и это была файловая система, похожая на nfs) было очищать буферы файловой системы, а затем обновлять svn. Обновление прошло успешно:
sync
svn update
Синхронизация сбрасывает буферы файловой системы, проблема была решена.