Инструкции по использованию TortoiseGit для взаимодействия с хранилищем SVN?

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

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

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

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

Спасибо!

Ответ 1

  • Создать каталог
  • щелкните правой кнопкой мыши, "Git Clone..."
  • Включить "из репозитория SVN" и выбрать все дополнительные настройки

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Ранее было отмечено - просто поместив его в качестве правильного ответа:)

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

Ответ 5

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

Ответ 6

Вы можете попробовать использовать 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, запускает приемники pre-receive и post-receive, которые реплицируют входящие изменения в репозиторий SVN.

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

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

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

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

Ответ 7

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

Ответ 8

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