Можно ли иметь несколько провайдеров команды в одном проекте Eclipse? - PullRequest
0 голосов
/ 16 января 2010

Если говорить кратко, проблема заключается в следующем:
Давайте предположим, что у меня есть проект в рабочей области Eclipse, и я хочу, чтобы он удерживался для двух других источников контроля (точнее, SVN и Mercurial)?

Ответы [ 3 ]

1 голос
/ 16 января 2010

Для меня: ни за что. И я вижу для этого несколько веских причин: если вы фиксируете свои изменения, Eclipse должна знать, куда отправлять файлы. Он может записывать, откуда он получил файлы, но каждый раз, когда вы создавали новый файл или перемещали какой-либо файл, eclipse не знала, какой поставщик команды должен взять на себя ответственность.

И еще хуже: представьте, что у обоих провайдеров было несколько общих файлов, например, .project. Какой взять?

Существует связь 1: 1 между проектом и хранилищем. К счастью, затмение позволяет различным провайдерам команды для рабочего пространства;)

Практическим подходом к созданию приложения, которое зависит от файлов из данной Subversion, может быть использование двух разных проектов, которые вы используете для доступа только к репозиториям (стандартные проекты, без природы), и третий проект со связанными исходными папками, которые вы используете для фактической работы (сборка, отладка), например:

hg-project <teamprovider: mercurial>
  src
svn-project <teamprovider: subversion>
  src
work
  hg-src <linked to hg-project/src>
  svn-src <linked to svn-project/src>
  bin
1 голос
/ 17 января 2010

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

Если вы этого не видели:
https://www.mercurial -scm.org / вики / WorkingWithSubversion

0 голосов
/ 16 января 2010

К сожалению нет (по моему опыту). Моя цель состояла в том, чтобы иметь каталог с моим проектом с управлением версиями SVN, который указывал бы на чей-то проект CVS. Проблема в том, что это не слишком разумно, и Team Team не распознает, что в папке SVN была папка CVS. Итак, я посмотрел на проектную точку в CVS и SVN-репозитории без успеха. [edit: я должен квалифицировать это как использование Eclipse 3.5]

Думаете ли вы, что вы хотите, чтобы одинаковые файлы имели версию, контролируемую двумя репозиториями? Это хлопотно, что будет означать для кого-то обновить файл в одном репозитории, но не в другом? Теперь у вас есть две разные ревизии HEAD, без способа определить, какая из них более новая.

Если вы хотите управлять различными файлами, зачем использовать две разные системы? Если вам нужно четко разделить вещи, вы всегда можете использовать svn:externals. У Mercurial, похоже, нет такого механизма. Вы могли бы рассмотреть альтернативы, хотя. Mercurial и SVN прекрасно работают вместе, и может быть возможно использовать некоторые утилиты (за пределами Eclipse) для синхронизации вашего проекта между двумя системами / репозиториями контроля версий.

Исходя из вашего комментария, если вы хотите иметь локальный репозиторий и серверный репозиторий, вы можете рассмотреть возможность использования svn: externals для связи вашего локального репозитория с серверным репозиторием, хотя я не уверен, что это поможет вам очень сильно. Возможно, стоит посмотреть, сможете ли вы получить какое-либо Mercurial «внешнее» соединение с репозиторием SVN, потому что тогда вы можете указать Eclipse на свой локальный репозиторий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...