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

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

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

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

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

Спасибо!


person markerikson    schedule 14.02.2010    source источник
comment
Чтобы уточнить, есть ли у вас SVN репозиторий в D:\Projects\repositories или SVN рабочая копия (т.е. файлы, которые вы извлекли из своего репозитория)   -  person Edd    schedule 16.02.2010
comment
Я создаю фактические папки репозитория в D: \ Projects \ Repositories, а затем проверяю содержимое в другом месте в D: \ Projects. Я смог немного продвинуться вперед, используя TortoiseGit против репозитория SVN с помощью svn + ssh, но затем возникли проблемы с попыткой объединить коммиты в проверке SVN и проверке Git. Я до сих пор не получил TortoiseGit, чтобы хорошо работать с локальным репозиторием SVN.   -  person markerikson    schedule 17.02.2010
comment
Вы разобрались с настройкой TortoiseGit + git-svn?   -  person Alex_P    schedule 30.03.2010
comment
Не совсем. Я работаю над другими проектами. Я добавил в закладки несколько сайтов с учебными пособиями по git, но узнать больше об этом не было приоритетом. Я немного удивлен, что со всеми сторонниками git, похоже, ни у кого нет учебника по TortoiseGit / svn.   -  person markerikson    schedule 30.03.2010
comment
Удивительно, что на этот вопрос до сих пор нет хороших ответов. См. Мой связанный с этим вопрос (почти повторяющийся, но не совсем): stackoverflow.com/questions/3676094/   -  person ripper234    schedule 09.09.2010


Ответы (8)


  1. Создать каталог
  2. щелкните правой кнопкой мыши "Git Clone ..."
  3. Включите «Из репозитория SVN» и выберите все дальнейшие настройки.
person StefanPapp    schedule 30.09.2010
comment
Щелкните правой кнопкой мыши с зажатой клавишей Shift, чтобы отобразить параметр контекстного меню git clone - person StanOverflow; 13.04.2020

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

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

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

person dahlbyk    schedule 16.07.2010
comment
Возможно, вы не внимательно прочитали мой первоначальный вопрос. У меня действительно есть существующая установка SVN, и в настоящее время я использую ее с парой друзей в проекте. Я надеялся поэкспериментировать с использованием TortoiseGit для взаимодействия с сервером SVN, в то время как мои друзья продолжали использовать TortoiseSVN, поскольку это все, с чем они знакомы. Спасибо, что нашли время ответить, но это действительно не ответ на мой вопрос. - person markerikson; 16.07.2010
comment
Полагаю, я мог предположить, что ваша ситуация изменится за последние 5 месяцев; Я отвечал, основываясь на исходной формулировке: Я планирую начать сотрудничество с другом .... TortoiseGit уже давно поддерживает git-svn, повезло ли вам с этим? - person dahlbyk; 17.07.2010
comment
Извините, вы правы - эта формулировка устарела. Мне так и не удалось добиться хорошего взаимодействия TortoiseGit с SVN. Не уверен, была ли это вина TG или моего незнания Git. С тех пор я сосредоточился на написании кода, а не на вознях с TG. Мне все еще любопытно, как заставить их сотрудничать должным образом, если кто-то хочет составить учебник ... - person markerikson; 19.07.2010
comment
Также совет. ИМО, вы должны сначала изучить Git «с Git» (т.е. не svn) и при необходимости поэкспериментировать с поддельным проектом, прежде чем пытаться использовать его через git-svn. Git сильно отличается от SVN и заслуживает отдельного изучения. Кажущаяся простота графического инструмента не могла заставить вас этого избежать. - person Yanflea; 10.05.2012

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

person JBCP    schedule 17.02.2012

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

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

person getack    schedule 23.07.2013

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

person Hara Hara    schedule 09.05.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.

person vadishev    schedule 12.10.2012

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

person khmarbaise    schedule 21.04.2010
comment
Спасибо за мысль, но мне действительно нужны инструкции по использованию TortoiseGit. Есть несколько инструкций по использованию git CLI с SVN, но ничего о TortoiseGit. - person markerikson; 22.04.2010

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

person cimnine    schedule 19.11.2013