Мультимодульные проекты в Subversion vs. Eclipse - PullRequest
1 голос
/ 11 ноября 2009

Я использую Eclipse с моими проектами в репозитории SVN в такой структуре:

trunk
 +- module1
 +- module2

Используя перспективу Team Synchronization, я могу обновлять отдельные проекты, а слияние также работает и над самими проектами. Есть ли способ сделать то же самое на корневом уровне, а не на уровне проекта?

Я использую Subversive, но можно убедить его использовать Subclipse, если он может это сделать.

Ответы [ 4 ]

1 голос
/ 11 ноября 2009

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

Вы можете извлечь из trunk новый проект в Eclipse, а затем синхронизировать этот «магистральный» проект, если хотите, хотя лично я бы использовал внешний инструмент, такой как TortoiseSVN (или svn из командной строки). чтобы предотвратить любые странные конфликты в Eclipse.

1 голос
/ 12 ноября 2009

Если ваши модули довольно четко разделены (логически и / или функционально), я считаю полезным организовать мое репозиторий svn следующим образом:

module1 (eclipse proj1)
-- trunk
-- branches
-- tags

module2 (eclipse proj2)
-- trunk
-- branches
-- tags

Поначалу это может показаться излишним (особенно если модули небольшие), но я считаю полезным попытаться поддерживать взаимно-однозначное отношение между каждой структурой dir "trunk, ветвления и теги" в svn и каждым проект затмения. Это позволяет мне помечать каждый модуль как отдельную версию (при необходимости) и прекрасно интегрируется со скриптами сборки.

Если ваши модули не разделены логически, вы можете объединить их в один; -)

1 голос
/ 11 ноября 2009

Попробуйте в перспективе Subversion (или Subversion Explorer, не могу вспомнить, как она называется), а скорее в перспективе Team Sync. В этой перспективе вы можете видеть весь репо и выполнять над ним действия. Это может дать вам то, что вы хотите. (примечание: я всегда использую подрывный плагин для svn).

0 голосов
/ 13 ноября 2009

Возможно, вы захотите использовать свойство svn: externals. Например:

  1. Создать родительский проект (только в svn) и две папки там - module1 и модуль2
  2. Добавить SVN: внешнее свойство для Папка module1 с путем к репозиторий module1 (svn: // serverhost / module1) в качестве значение.
  3. Добавить SVN: внешнее свойство для Папка module2 с путем к модуль2 репозиторий (svn: // serverhost / module2) в качестве значение.

Тогда вы сможете оформить / зафиксировать как весь проект, так и отдельные модули. Не уверен, что это то, что вы хотели.

...