Я работаю с ветвями уже довольно давно, но я всегда использовал инструменты командной строки для фактического слияния. Однако теперь мне нужно сделать это только из Eclipse. Разветвление и слияние, являющееся широко используемой функцией систем SCM в течение многих лет, я ожидал, что Eclipse будет иметь хорошую поддержку, но это просто не так.
В настоящее время я работаю над продуктом, который состоит из нескольких проектов, которые необходимо объединить. При объединении изменений из транка в ветвь обычно я выполняю следующее из корня извлечения веток: (Я использую Subversion в качестве примера, но проблемы должны относиться и к другим инструментам SCM).
svn update
svn merge ^/trunk
svn commit -m "Merged from trunk"
Может быть, исправить некоторые конфликты в середине, но это все, что мне нужно сделать. Однако в Eclipse я могу объединяться только на уровне проекта, что имеет следующие недостатки:
- Я не могу объединить содержимое корневой папки, только содержимое отдельных проектов. То же самое касается обновления, кстати.
- Если структура проекта изменена на соединительной линии (например, был добавлен новый проект), эти изменения вообще не объединяются. То же самое для обновления, снова.
- Слияние не атомарное. Если во время слияния происходит коммит в транке, в моей рабочей копии все может испортиться. (Это можно обойти, но не удобно.)
Эти ограничения кажутся довольно простыми из-за того, что Eclipse не знает о корневой папке, поскольку проверяет отдельные проекты из SVN.
У меня вопрос: я что-то упустил или действительно невозможно использовать Eclipse способом, подобным тому, что я делал бы из командной строки? И если это действительно невозможно, то как другие справляются с этим? Все ли используют внешние инструменты, такие как командная строка или TortoiseSVN?