Подтвердить что ты не робот

Инструкции по использованию 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 недостаточно зрелая, чтобы выполнить эту работу, это также будет полезной информацией.

Спасибо!

4b9b3361

Ответ 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.