Git-svn и Eclipse?

#eclipse #git #eclipse-plugin #git-svn

#eclipse #git #eclipse-плагин #git-svn

Вопрос:

Есть ли плагин для Eclipse для git-svn? Я ищу способ обработки репозитория SVN с помощью Git (для быстрого переключения ветвей и т.д.)

Ответ №1:

Не похоже, что для Eclipse существует плагин Git, который поддерживает git-svn.

EGit на данный момент является самым активным и популярным плагином Git для Eclipse, и он не поддерживает git-svn, но ничто не мешает вам использовать EGit с Eclipse и взаимодействовать с git-svn через командную строку (или, например, через tortoise git).

Ошибка Eclipse 315264 — это ошибка EGit для поддержки git-svn, и это похоже на то, что разработчики EGit готовы реализовать, но у них другие приоритеты atm. Поэтому обязательно проголосуйте за эту ошибку, если вам нужна эта функция.

Комментарии:

1. Комбинация рабочего процесса и инструмента, описанная @ztatic, является точной той, которую я использую (EGit / командная строка / TortoiseGit), хотя в конечном итоге я выполняю большую часть своих взаимодействий с git из командной строки.

2. Имейте в виду, что eclipse не реализует много изменений при извлечении различных ветвей, WIP и т.д. Иногда даже обновить проект недостаточно. Иногда единственным решением является посещение файлов

Ответ №2:

EGit — единственный плагин Git для Eclipse на данный момент. Он не поддерживает git-svn. Но есть способ заставить EGit работать с вашим репозиторием Subversion, и этот подход хорошо работает с любым другим клиентом Git.

SubGit — это серверное решение, которое обеспечивает доступ Git к вашим репозиториям Subversion, а также доступ Subversion к репозиториям Git. Вы можете обратиться к документации SubGit для получения более подробной информации, но в целом они довольно просты:

 $ subgit configure --layout auto $SVN_URL $GIT_REPO
# Adjust $GIT_REPO/subgit/config
#     to specify your branches, tags and other settings
# Adjust $GIT_REPO/subgit/authors.txt 
#     to introduce svn author names to their git counterparts
# Adjust $GIT_REPO/subgit/passwd
#     in case you have no SVN credentials cached on your machine
$ subgit install $GIT_REPO
$ ... translating ... a little git is gonna born right here ... 
$ TRANSLATION SUCCESSFUL
  

После этого:

  1. У вас есть репозиторий Git в $ GIT_REPO, синхронизированный с репозиторием SVN в $ SVN_URL; эта синхронизация надежно является двунаправленной, т. е. репозитории SVN и Git остаются доступными для записи, а SubGit учитывает изменения с обеих сторон.

  2. SubGit установил перехваты в каталог $GIT_REPO /hooks, которые запускаются при каждом git push обращении к этому репозиторию.

  3. SubGit опрашивает репозиторий SVN, чтобы получить новые версии.

Пожалуйста, обратите внимание, что ваши товарищи по команде могут использовать одно и то же зеркало для отправки своих изменений в репозиторий Subversion. В этом случае вам следует настроить Git server, к счастью, SubGit поддерживает практически все доступные на данный момент Git-серверы:

Отказ от ответственности: Я разработчик SubGit; SubGit — коммерческое программное обеспечение с бесплатными опциями для небольших команд, с открытым исходным кодом и академических проектов.

Ответ №3:

Хотя этому вопросу 4 года, я подумал, что хотел бы поделиться своим недавно найденным обходным решением:

  1. Откройте «Конфигурации внешних инструментов» (прямо рядом с «Запустить конфигурации») и создайте новую конфигурацию «Программы».
  2. В качестве рабочего каталога выберите свой проект в рабочей области.
  3. Введите svn dcommit в текстовое поле аргументы.
  4. Продублируйте конфигурацию и замените svn dcommit на svn rebase .

Теперь вы можете запустить git svn dcommit и git svn rebase двумя щелчками мыши.

Комментарии:

1. Похоже, что меню в Eclipse Neon изменились. Я нашел это для шага 1: меню Выполнить (из строки меню вверху, а не контекстного меню) — Внешние инструменты (внизу списка) — Конфигурации внешних инструментов .