Eclipse Workspace / Настройка проекта с использованием символических ссылок - PullRequest
8 голосов
/ 16 февраля 2011

У меня есть следующие упрощенные настройки:

~/Development/Repositories/ProjectA-trunk
~/Development/Repositories/ProjectA-branch
~/Development/workspace
~/Development/workspace/ProjectA

ProjectA - это символическая ссылка на ../Repositories/ProjectA-trunk. В идеальном мире я мог бы переключить ссылку, чтобы указать на ../Repositories/ProjectA-branch, а затем перейти к обновлению проекта в Eclipse и работать над веткой.

В этом прискорбном реальном мире Eclipse, хотя он и говорит об обратном при первоначальном импорте существующего проекта, разрешает символическую ссылку и сохраняет абсолютный путь к проекту в Свойства> Ресурс> Местоположение для «ProjectA», что в данном случае ~ / Разработка / Хранилище / ProjectA-ствол. Поэтому переключение символической ссылки не имеет никакого эффекта, потому что теперь Eclipse считает, что ProjectA живет в ~ / Development / Repositories / ProjectA-trunk, а не в ~ / Development / Repositories / ProjectA.

Есть ли у кого-нибудь решение или обходной путь или предложение о том, как настроить рабочее пространство, чтобы сделать работу с такими ветками, как эта?

Ответы [ 3 ]

6 голосов
/ 04 июня 2013

Для первоначального импорта проекта (при условии, что ~/Development/workspace/ProjectA в настоящее время не существует):

  1. mv ~/Development/Repositories/ProjectA-trunk ~/Development/workspace/ProjectA
  2. Импорт ~/Development/workspace/ProjectA в Eclipse
  3. mv ~/Development/workspace/ProjectA ~/Development/Repositories/ProjectA-trunk
  4. ln -s ~/Development/Repositories/ProjectA-trunk ~/Development/workspace/ProjectA
  5. Обновить Eclipse

Всякий раз, когда вы хотите изменить ветку:

  1. ln -Tfs $BRANCH ~/Development/workspace/ProjectA
  2. Обновить Затмение
0 голосов
/ 11 мая 2013

Вы можете сделать то же самое, создав свой репозиторий в уже существующем рабочем пространстве.Eclipse использует папку .metadata в рабочей области, чтобы определить, какие проекты существуют.Затем разместите ваши ветки в той же директории (например, используя git).В любое время, когда вы хотите переключить ветки, вы git checkout my_branch затем обновляетесь в Eclipse.

Другими словами, не используйте ссылку, используйте git для управления ветками в том же каталоге.

Редактировать: полная процедура выглядит примерно так.Клонируйте репозиторий за пределами Eclipse (потому что импорт мешает вам, если он находится в вашей рабочей области).Импортируйте в свое рабочее пространство.Удалите папку внутри своего рабочего пространства и клонируйте репозиторий в свое рабочее пространство.

0 голосов
/ 28 декабря 2012

Настройка symlink работает для меня с Mac OS и Eclipse (Indigo и Juno).

robert@pferdeapfel:~> ls -l ~/Documents/workspace/
total 8.0K
lrwxr-xr-x 1 robert staff   33 Dec 27 14:05 TheProject -> /Users/robert/prj/foo/Java

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

robert@pferdeapfel:~> ls -ld ~/prj/foo
lrwxr-xr-x 1 robert staff 5 Dec 27 13:47 /Users/robert/prj/foo -> trunk

При переключении я rm ~/prj/foo и ln -s еще одна рабочая копия в foo.Обновите в Eclipse, и он получит изменения.

Хитрость заключалась в том, что мой проект только частично на Java, т. Е. У меня есть основная папка рабочей копии (foo) и ниже этой Java, Perl, Postgres,и так далее.Когда я ссылаюсь на основную папку (т.е. ~/Documents/workspace/TheProject -> ~/prj/foo), Eclipse разрешает символические ссылки при импорте и сохраняет полученный путь в свойствах проекта.Только когда у меня есть символическая ссылка на папку Java в проекте (~/Documents/workspace/TheProject -> ~/prj/foo/Java, Eclipse сохраняет символические ссылки.

Весь материал символических ссылок полезен, когда у вас есть разные рабочие копии одной и той же ветви / ствола и вам нужнопереключаться между ними. Eclipse не может обрабатывать одно и то же имя проекта дважды. Я не хочу потерять изменения рабочей копии. Отсюда и символическая ссылка.

...