Восстановить соединение с проектом Subversion Eclipse


100

У меня есть проект в Subversion, который я разрабатываю с помощью Eclipse. Я выполнил исходную проверку из репозитория svn из Eclipse. Все было хорошо в течение нескольких недель по какой-то неизвестной причине, Eclipse (в частности, subclipse в Ганимеде) больше не распознает мой проект как находящийся под контролем svn. В контекстном меню команды отображаются только основные параметры меню «Применить патч» / «Поделиться этим проектом». Из оболочки я все еще могу обновить проект с помощью инструментов командной строки svn, поэтому я знаю, что учетные данные svn все еще работают. Другие проекты, находящиеся под подрывной деятельностью в той же копии Eclipse, все еще работают.

Я понимаю, что могу удалить локальную копию и снова проверить ее, но я бы предпочел понять, что пошло не так, - исправить проблему, а не замаскировать симптомы. Где Eclipse хранит информацию о том, какие проекты находятся под контролем версий? Я посмотрел на .projectфайл и .settingsкаталог, но не увидел явного упоминания о svn nature или чего-либо подобного, даже в проектах, которые все еще работают должным образом.

Ответы:


124

Если вы используете sublipse в качестве поставщика SVN, я рекомендую сделать следующее

Команда -> Поделиться проектом обычно достаточно для подключения метаданных.

(то есть, если предположить, что файлы .svn все еще там, как кажется, если вы можете работать в командной строке).

Надеюсь, это поможет понять, почему это произошло, я понятия не имею


9
У меня такая же проблема, но этот ответ мне не помогает. Eclipse предлагает мне создать новый проект в Subversion. Нет возможности переподключить проект.
migu,

1
Подтвержденный способ сделать это.
pestaa

1
Большое спасибо за этот ответ, сэкономивший мне много времени. Теперь я наконец могу просто обновить весь свой рабочий набор.
Седрик Мери

1
Это сработало для меня (с 64-разрядной версией Eclipse Indigo и Subclipse), спасибо! Я просто хотел добавить, что комментарий «при условии, что файлы .svn все еще существуют», возможно, не совсем правильный. То есть, я был удивлен, увидев, что, хотя мой проект все еще связан с моим репозиторием (как подтвердил TortoiseSVN), в каталоге проекта не было каталога .svn ! Я всегда думал, что такой каталог есть в каждом каталоге, управляемом SVN, но теперь я понимаю, что это не так. В любом случае, точка OP заключалась в том, что если каталог все еще находится в конфигурации, тогда это должно работать, кажется допустимым.
Роб Крэнфилл,

1
Также работал в Subversive ... Спасибо!
jaibatrik

23

Я нашел простой способ просто повторно импортировать проект


1
Ты мужчина ... :) У меня была только опция «Применить патч», и это решило проблему ... Почему я не подумал об этом :)
IncrediApp

Да, реимпорт кажется самым простым :-)
user942640

У меня также была только опция меню «Применить патч». Повторный импорт сработал. Где-то должен быть файл конфигурации, определяющий это. Оглядываясь назад, мне жаль, что я не сделал резервную копию соответствующей рабочей области конфигурации и файлов / папок проекта, чтобы я мог видеть, что изменилось. Надеюсь, следующий человек, который прочитает это решение, сделает это и поделится тем, что изменилось.
Pixelstix,

7

Просто выполнение Team -> Share Project (согласно ответу на этот вопрос, предоставленному @Paul Whelan) для меня не сработало. Мастер общего доступа к проекту действовал так, как будто проекта еще не было в SVN (хотя папка .svn присутствовала в моем проекте).

В итоге я решил проблему, удалив надстройки Subversive и JavaHL (с помощью Help | About Eclipse | Кнопка «Сведения об установке» | вкладка «Установленное программное обеспечение» | Удалить ...), а затем переустановить Subversive. Когда после перезапуска Eclipse появится запрос, я решил установить коннектор SVNKit, а не коннектор JavaHL.

После этого, когда я еще раз попробовал Team -> Share Project ..., Eclipse правильно распознал, что мой проект уже присутствует в SVN, и успешно восстановил соединение.


Зачем делиться проектом? share project опубликует ваш локальный проект на svn-сервере, если у вас есть что-то локально, что не должно переходить на svn-машину, это может вызвать проблемы, что он хочет сделать, так это восстановить соединение, что, по-видимому, невозможно, решение будет новая проверка, в конце концов, установите subclipse вместо подрывной
JBoy

4

Дополнение: оказалось, что моя проблема проявляется, когда я запускаю Eclipse вне vpn компании, с проектом в рабочей области, который прикреплен к репозиторию svn внутри vpn. К счастью, переключение плагинов Eclipse svn с subversive на subclipse помогло решить эту проблему.

Ян


3

Из eclipse я закрыл проект (ы) и снова открыл, что устранило проблему. Все ссылки SVN вернулись для всех проектов в моей рабочей области.


1
Я попробовал закрыть и снова открыть проект, но у меня это не сработало.
Epu

2

У меня была такая же проблема, и этот форум помог мне найти правильный ответ.

Мой предыдущий проект был настроен с помощью subclipse. Новое затмение пришлось подорвать.

Установка subclipse помогла мне вернуть параметры svn в команде!

Надеюсь, это поможет кому-то другому.

С уважением

Аншу Пратик


Я не могу установить subclipse в kepler. любое решение?
Вивек

1

Не зная, на какой платформе вы находитесь, я не знаю, похожа ли ваша проблема на мою. Однако у меня недавно (фактически на двух разных платформах!) Были проблемы, когда обновление Subversive (или, возможно, самого Eclipse, не ясно) приводило к тому, что соединители больше не загружались. Без соединителей Subversive не может подключиться к проекту. Но Eclipse не собирается блокировать вас из вашего проекта из-за этого, он просто удалит функциональность, связанную с SVN.

Посмотрите на представление «Ошибки», которое представляет собой журнал различных ошибок Eclipse (исключения класса не найден и т. Д.) И посмотрите, есть ли какие-либо строки, относящиеся к компонентам Subversive. К сожалению, я не могу рекомендовать решение - на моей платформе Mac OSX было достаточно переустановить основные элементы и разъемы Subversive. На моей Linux-машине (возможно, из-за обновления ОС) мне нужно полностью переустановить Eclipse, так как накопилось слишком много мусора, чтобы я мог полностью изучить его.


1

В выпуске Juno с Subversive я сделал:

  • File / Import вызывает всплывающее окно Import.
  • Оттуда выберите Общие / Существующие проекты в рабочей области.
  • На следующей панели вы выбираете корневой каталог. Затем он покажет вам все подкаталоги. Все они будут выбраны по умолчанию.
  • Отмените выбор тех, которые вам не нужны.

Затем он «импортирует» ваш существующий каталог, который можно использовать на месте, где они уже находятся внутри каталога вашей рабочей области.


0

То же самое и в моем случае: там были каталоги .svn, но мой проект не поддерживал действия svn.

Поковырявшись, выяснилось, что подрывной плагин просто пропал после принудительного выхода из затмения.

Решением было (пере) установить subversive, и теперь все снова в порядке.

Ура v.

ОБНОВЛЕНИЕ: я переключил eclipse на новую версию, в которой просто не было установлен плагин, поэтому мне пришлось установить его с нуля.


0

Это сработало для меня: щелкните правой кнопкой мыши -> TortoiseSVN -> Настройки -> Свойства наложения значков, выберите оболочку в качестве кэша состояния. Нажмите ОК, обновить страницу.


0

Я могу надежно воспроизвести эту проблему - это происходит при проверке определенных проектов Maven путем запуска «Check out as Maven Project…» не в папке, содержащей сам POM, а в родительском каталоге (например, «trunk»). В этом случае Subclipse проверяет проект без каких-либо жалоб, помещая его в каталог рабочей области с именем-заполнителем, например maven.1424425443350. Внутри этого каталога создается подкаталог с именем артефакта Maven. Это сбивает с толку как Subclipse, так и Subversion: Subclipse, как мы видели, сразу же забывает, что проект находится под контролем версий, и если вы вызываете svn statusиз командной строки вmaven.1424425443350 каталоге, он сообщит вам, что каталог находится под контролем версий, но что все файлы с контролем версий отсутствуют.

Ни один из обходных путей, представленных в других ответах, не будет работать, если это заставило Subsclipse забыть свое соединение SVN. Вместо этого единственное решение - удалить проект и снова проверить его, на этот раз убедившись, что проверка выполняется в каталоге, содержащем POM, а не в каком-либо каталоге более высокого уровня.

Лучшим общим решением для Subclipse было бы отказать в запуске «Check out as Maven Project…» в каталогах, которые не содержат POM, или же лучше обрабатывать случаи, когда он все равно пытается это сделать, путем поиска в подкаталогах проектов Maven.


0

Я использовал две реализации SVNKit (1.7.x и 1.8.x) одновременно с версией репозитория SVN (1.8.x).

В итоге Команда -> Поделиться проектами ... всегда запрашивала сообщение о фиксации. Очевидно, использовался SVNKit 1.7.x, несовместимый с SVN 1.8.x.

После удаления SVNKit 1.7.x eclipse использовал единственно доступный правильный SVNKit версии 1.8.x, и все работало, как ожидалось.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.