Как создать проект Eclipse с клоном EGit

Проведя десятилетие с SVN, я наконец решился на Git. Я настроил Git, Gitolite и GitLab на сервере и успешно добавил код в свой локальный репозиторий, зафиксировал, клонировал репозитории и отправил код обратно в репозитории. Все идет нормально. Теперь входит в EGit...

Я клонировал репозиторий, используя представление Git Repository Exploring, используя следующий синтаксис для пути:

ssh://dexter:vaultanalyser.git

(В GitLab репозитории называются проектами, поэтому я предполагаю, что у меня должен быть один репозиторий для каждого проекта Eclipse? А не единый родительский репозиторий в стиле SVN, содержащий несколько проектов?)

Это импортирует репозиторий в:

/Users/mattpainter/git/vaultanalyser

Я ожидал, что этот шаг автоматически создаст для меня проект Eclipse с всем исходным кодом, но это не так. Я попытался подделать целевой каталог, чтобы он находился в моей рабочей области, но это тоже не работает.

Как сделать клонированный исходный код доступным в Eclipse? Этот сайт подразумевает что если вы создаете проект с тем же именем, что и репозиторий, все это волшебным образом работает, но это не так (да, я знаю, что статья о Github, а не GitLab, но я полагал, что эти два понятия достаточно близки для поставленная задача).

Затем я попытался создать проект в Eclipse и поделиться им, но тогда весь проект появляется как подпапка в репозитории. Если репозитории действительно аналогичны проектам, это не совсем то, что мне нужно.

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

Помощь?


person nullPainter    schedule 22.04.2012    source источник


Ответы (3)


В GitLab репозитории называются проектами, поэтому я предполагаю, что у меня должен быть один репозиторий для каждого проекта Eclipse?

Да, но «проект» GitLab не обязательно является проектом Eclipse.
Он не обязан следовать структуре SVN, как показано в «справочный каталог Eclipse вне каталога проекта eclipse, но внутри репозитория".

Все, что вам нужно сделать, это создать проект Eclipse, указав исходный каталог не в пути по умолчанию (рабочее пространство Eclipse), а везде, где вы клонировали репозиторий (как описано в "Начало работы с Eclipse + EGit - запутано").
Таким образом, проект eclipse, который вы только что объявленный (и указанный в рабочей области Eclipse) имеет свои файлы (.project и .classpath) в корне репозитория Git.
И Egit затем может прекрасно управлять этим проектом.
Или вы можете импортировать его напрямую с помощью Egit. : "Eclipse + EGit: клонировать проект в рабочую область".


Как сообщает ниже OP nullpainter:

Исходная проблема усугублялась неправильными разрешениями для папки .git/objects на сервере.
Запуск chmod git:git -R * для папки решил проблему.

Он подробно описывает правильную настройку ниже.

person VonC    schedule 22.04.2012
comment
Спасибо; это сработало. Меня сбило с толку то, что если вы решите поделиться проектом, целевым расположением будет /Users/mattpainter/git/‹имя репозитория git›/‹имя проекта Eclipse›, а это не то, чего я хотел. Со связанным исходным кодом он по-прежнему отображает это, но при фиксации показывает как ‹Имя проекта Eclipse›/src/‹myfiles›, так и src/‹my files›. Очень запутанно...! - person nullPainter; 22.04.2012
comment
На самом деле, эта проблема может быть связана с тем, что я только что создал связанную папку src, указывающую на репо - в моей версии Eclipse (Juno), похоже, нет «создать проект из существующего источника», который работает так, как вы описываете. В настоящее время у меня есть .project и .classpath в моем рабочем пространстве Eclipse, что, я полагаю, работоспособно. - person nullPainter; 22.04.2012
comment
Правильно. «Создание проекта из существующего исходного кода» было объединено со стандартным диалоговым окном «Новый проект Java». При этом и «Использовать или создать репозиторий в родительской папке проекта» при совместном использовании, чтобы избежать ошибок, связанных с конфликтующими .project файлами, я получаю следующую ошибку: An internal Exception occurred during push: dexter:vaultanalyser.git: Missing tree 32f2fe4f5ee5a4e2e7265ac5068a2b17a30b32e4 - person nullPainter; 22.04.2012
comment
Ха! Попробовав еще раз с консоли и столкнувшись с ошибкой недостаточного разрешения, я обнаружил, что некоторые каталоги в папке «объекты» на сервере принадлежат пользователю root. С заменой этих все порадовало! - person nullPainter; 22.04.2012

Чтобы расширить ответ @VonC, шаги, чтобы заставить EGit и Eclipse хорошо играть:

  1. Выберите «Клонировать репозиторий Git» из EGit, приняв все значения по умолчанию. Это создаст папку в git родительской папке, где-то за пределами вашей рабочей области.

  2. Создайте новый проект Eclipse. Я использую Java, но полагаю, что для других языков есть аналогичные шаги. В первом диалоговом окне снимите флажок «Использовать расположение по умолчанию» и вместо этого выберите папку репозитория, созданную на шаге 1. Примите все значения по умолчанию.

  3. Выберите Team > Share Project... из вашего нового проекта. Выберите Git и отметьте «Использовать или создать репозиторий в родительской папке проекта».

Теперь вы можете отправить свой код и точечные файлы Eclipse в свой репозиторий git из Eclipse.

(Моя первоначальная проблема усугублялась неверными разрешениями в папке .git/objects на сервере — запуск chmod git:git -R * в папке решил проблемы)

person nullPainter    schedule 22.04.2012
comment
Спасибо за отзыв (+1). Я включил это в свой ответ для большей наглядности. - person VonC; 22.04.2012

Я проверяю это с помощью командной строки, а затем создаю свои проекты поверх этого. Фактически, большинство операций я выполняю с помощью командной строки git. EGit полезен для просмотра различий, но я считаю, что командная строка имеет больше возможностей и контроля. Git в основном дает разработчикам большую власть и контроль.

person Sarge    schedule 22.04.2012