2013-04-11 3 views
2

Я использую Eclipse CDT и egit, и мне нужно построить один проект из нескольких репозиториев. Один из них содержит основную часть исходного кода, а второй содержит сценарии использования, используемые как часть процесса сборки (которые также используются при создании нескольких других проектов).Структурирование проекта eclipse, содержащего несколько репозиториев git

Я изо всех сил пытаюсь понять, могу ли я сделать работу с этой настройкой разумно. Я не могу понять, как связать проект CDT с несколькими репозиториями git, а это значит, что я не могу выполнять операции VCS для некоторых файлов в проекте.

Я хочу, чтобы иметь возможность щелкнуть правой кнопкой мыши по любому файлу в рабочей области и выполнить команду, в которой находится репозиторий, и выполнить операции (история, винить ...) правильно. Кто-нибудь смог это сделать, или вы можете указать мне на документацию, которую я не могу найти из-за огромного количества руководств «Несколько проектов в одном репо».

+0

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

+0

Пользователи с несколькими проектами могут/должны будут иметь набор сценариев сборки для каждого проекта (им может потребоваться внести изменения во время работы над одним проектом, который еще не нужен в другом). Пользователи хотят избежать двух проектов для каждой вещи, над которой они работают (foo + foo_scripts, bar + bar_scripts ...) – Carcophan

+0

@robinst Хранилища были вытащены в одну и ту же папку, если проект находится в .../project/then два репозитория находятся в .../project/foo/.git и .../project/scripts/.git – Carcophan

ответ

4

EGit может иметь только 1 хранилище, связанное с проектом, и проект должен находиться внутри этого репозитория. Например, допустимыми являются макеты.

На том же уровне, что и проект:

.git 
.project 
src 
... 

Содержит более одного проекта:

.git 
project-a 
    .project 
project-b 
    project 

Это не возможно, чтобы иметь что-то вроде этого и есть EGit знать о хранилище для этого проекта :

.project 
foo 
    .git 

Вышеупомянутое также означает, что файлы проекта (.project,. classpath и т. д.) не находятся в репозитории - и они должны быть.

Поэтому я рекомендую иметь несколько проектов, один (или более одного) для каждого репозитория.

+1

Хороший ответ, но какой-то авторитетный источник сделает его намного лучше. (Хотя я боюсь, что это слишком много, учитывая, насколько плохи документы Eclipse ...) – hmijail

3

В апреле 2016 года, EGit 4.3 introduced support for nested repositories. Eclipse 4.6 Neon, представленный в июне 2016 года, включает в себя EGit 4.4.

Вложенные репозитории обнаруживаются автоматически; просто используйте контекстное меню Team-> Share Project в узле дерева проектов.

Смежные вопросы