Инструкции по использованию TortoiseGit для взаимодействия с хранилищем SVN? - PullRequest
38 голосов
/ 14 февраля 2010

В течение многих лет я использовал TortoiseSVN в Windows с локальными репозиториями файловой системы для своих собственных проектов. Я планирую начать сотрудничество с другом по одному из проектов и перенесу репозиторий на свой собственный сайт. Я прочитал много "Git Beats SVN!" сообщений за последние пару лет, и я подумал, что мне следует хотя бы посмотреть, о чем идет речь. В некоторых исследованиях появилась команда "git svn", и TortoiseGit утверждает, что имеет некоторый уровень поддержки git-svn. Мне нравится идея сохранения SVN-репозитория и выполнения локальных коммитов или веток с помощью git перед фиксацией их в репозиторий. Команда "shelve" также звучит полезно.

К сожалению, хотя есть ряд руководств по git-svn для CLI, для TortoiseGit нет ничего (что, по-видимому, еще находится на ранней стадии разработки). В результате у меня возникают проблемы, пытаясь выяснить, какой рабочий процесс мне нужен, чтобы заставить эти части сотрудничать.

У меня есть SVN-репозиторий в D: \ Projects \ repositories \ MyProject. Я создал D: \ Projects \ temp \ gittest и попытался сделать TortoiseGit "Git Clone" из репозитория. Оттуда у меня возникли проблемы при попытке указать расположение папок ствола / веток / тегов (которые являются просто стандартным макетом в моем хранилище). Я смог получить полезные результаты только тогда, когда оставил их без контроля. Когда мне показалось, что репозиторий git запущен правильно, я смог внести некоторые изменения и сделать пару коммитов git, но затем возникли проблемы при выполнении SVN DCommit.

Итак, я надеюсь, что кто-то может предоставить достаточно подробный набор инструкций о том, как правильно использовать TortoiseGit с существующим репозиторием SVN (с репозиторием в локальной файловой системе или на удаленном сервере). Нет "не используйте SVN!" Ответы, пожалуйста - мне интересно узнать, как заставить эти две части работать вместе. Если вы чувствуете, что поддержка TortoiseGit SVN не достаточно развита, чтобы сделать эту работу, это также будет полезной информацией.

Спасибо!

Ответы [ 8 ]

25 голосов
/ 30 сентября 2010
  1. Создать каталог
  2. щелкните правой кнопкой мыши "Git Clone ..."
  3. Включить «Из репозитория SVN» и выбрать все дальнейшие настройки
9 голосов
/ 16 июля 2010

Обновление: Я поддерживаю свой ответ на вопрос в письменном виде («Я планирую начать сотрудничество с другом ...»), но если вы хотите / должны сохранить Subversion I скорее понравился мой рабочий процесс git-svn .

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

Я настоятельно призываю вас git svn clone -s --no-metadata <path_to_svn> тогда забыть, что у вас когда-либо был svn.

8 голосов
/ 17 февраля 2012

Это, вероятно, теперь очевидно, но у tortoisegit теперь есть встроенная поддержка git-svn.

3 голосов
/ 23 июля 2013

Это было отмечено ранее - просто поместите это здесь как правильный ответ:)

TortoiseGit теперь имеет встроенную поддержку SVN, поэтому он должен работать нормально.

1 голос
/ 12 октября 2012

Вы можете попробовать использовать TortoiseGit без встроенной поддержки SVN, а не как обычный клиент Git. Для этого вы можете установить SubGit в репозиторий SVN.

Ниже я перечислил несколько основных инструкций по настройке SubGit:

$ subgit configure SVN_REPOS
# Adjust SVN_REPOS/conf/subgit.conf to specify your branches and tags
# Adjust SVN_REPOS/conf/authors.txt to specify git & svn authors mapping
$ subgit install SVN_REPOS
...
$ INSTALLATION SUCCESSFUL

После установки вы можете найти Git-репозиторий в SVN_REPOS / .git и работать с ним как с обычным Git-репозиторием. Каждый git push, выполняемый TortoiseGit, запускает перехваты до и после получения, которые реплицируют входящие модификации в репозиторий SVN.

Подробнее см. В Документация SubGit и git-svn страница сравнения.

Начиная с версии 2.0 (еще не выпущенной на момент публикации) SubGit позволяет синхронизировать репозитории Subversion и Git, расположенные на разных хостах.

SubGit - это коммерческий инструмент, но он бесплатен для репозиториев с числом участников до 10, а также для открытых и академических проектов.

Отказ от ответственности: я один из разработчиков SubGit.

1 голос
/ 09 мая 2012

Я использовал msysgit из http://msysgit.github.com/, чтобы я мог извлечь из хранилища Subversion, которое требует принятия сертификата безопасности и других параметров командной строки. После извлечения кода я смог использовать TortoiseGit для большинства функций (за исключением svn push AFAIR)

0 голосов
/ 19 ноября 2013

Только для записи: SourceTree для Windows планирует поддерживать git-svn (и hgsubversion) начиная с версии 1.4 и далее. Соответствующий выпуск: SRCTREEWIN-119 .

0 голосов
/ 21 апреля 2010

Может быть, вы можете поместить свои проекты в github, который поддерживает svn access . Таким образом, вы можете продолжать использовать TortoiseSVN и сотрудничать с другими. С другой стороны, вы можете использовать такие вещи, как sourceforge и т. Д., Чтобы сотрудничать через SVN вместо git. Кстати, почему бы не использовать git svn clone URLOfTheSVNRepos и позже вместо этого делать git commits.

...