#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
После этого:
-
У вас есть репозиторий Git в $ GIT_REPO, синхронизированный с репозиторием SVN в $ SVN_URL; эта синхронизация надежно является двунаправленной, т. е. репозитории SVN и Git остаются доступными для записи, а SubGit учитывает изменения с обеих сторон.
-
SubGit установил перехваты в каталог $GIT_REPO /hooks, которые запускаются при каждом
git push
обращении к этому репозиторию. -
SubGit опрашивает репозиторий SVN, чтобы получить новые версии.
Пожалуйста, обратите внимание, что ваши товарищи по команде могут использовать одно и то же зеркало для отправки своих изменений в репозиторий Subversion. В этом случае вам следует настроить Git server, к счастью, SubGit поддерживает практически все доступные на данный момент Git-серверы:
- HTTP-сервер Apache с git-http-бэкэндом, GitLab, Gitosis, Gitolite: поддерживается из коробки;
- Atlassian Bitbucket Server: в этом случае вы можете использовать дополнение SVN Mirror, созданное на движке SubGit;
- Геррит: в этом случае вам нужно будет установить плагин SubGit для Gerrit;
Отказ от ответственности: Я разработчик SubGit; SubGit — коммерческое программное обеспечение с бесплатными опциями для небольших команд, с открытым исходным кодом и академических проектов.
Ответ №3:
Хотя этому вопросу 4 года, я подумал, что хотел бы поделиться своим недавно найденным обходным решением:
- Откройте «Конфигурации внешних инструментов» (прямо рядом с «Запустить конфигурации») и создайте новую конфигурацию «Программы».
- В качестве рабочего каталога выберите свой проект в рабочей области.
- Введите
svn dcommit
в текстовое поле аргументы. - Продублируйте конфигурацию и замените
svn dcommit
наsvn rebase
.
Теперь вы можете запустить git svn dcommit
и git svn rebase
двумя щелчками мыши.
Комментарии:
1. Похоже, что меню в Eclipse Neon изменились. Я нашел это для шага 1: меню Выполнить (из строки меню вверху, а не контекстного меню) — Внешние инструменты (внизу списка) — Конфигурации внешних инструментов .