2013-06-20 3 views
2

В рабочей среде нашим контролем версий является Subversion, и это вряд ли изменится. Я хочу использовать Git локально, в основном для преимуществ локальных репозиториев.Как правильно сделать Git SVN?

Контекст

Базовый URL: http://www.example.com/code./trunk, ./branches, ./tags).

Используя TortoiseGit, я смог указать, какой из них проверить. Я хотел бы иметь все ветви, теги и багажники доступны локально. Это означает, что я мог бы слить из локальной ветви обратно в master, на основе одной из удаленных ветвей, если это необходимо.

Как это сделать правильно?

После этого длительного процесса завершена, я пытался перебазироваться к пультов ДУ/филиалов/ПРИМЕР branch1 с использованием TortoiseGit в «SVN перебазироваться», переходя от master к remotes/branch/test-branch. Это не удалось, сказав, что хозяин отстает.

Когда я попытался перейти от master к местной связи на основе remotes/branch/test-branch, слияние не работает.

+0

Непонятно, ищете ли вы git2svn (http://repo.or.cz/w/git2svn.git) или помогаете в том, как вы работаете в самом git. – tgharold

ответ

0

Чтобы клонировать репозиторий, включая все магистральные/филиалы/метки со стандартной раскладкой (как вы уже есть):

git svn clone -s http://www.example.com/code new-repo-directory 

ПРИМЕЧАНИЯ: Использование мерзавца не серебряная пуля. У вас все еще будут конфликты слияния/переадресации, которые вам нужно будет решить. Вероятно, у вас будет гораздо меньше, но они не уйдут полностью. Вероятно, сбой был точным и указывает, что вам необходимо разрешить конфликты, а затем завершить свою фальсификацию git rebase --continue.

Я уверен, что черепаха - отличная помощь для многих вещей. Но мне много раз говорили, что вы получите гораздо больше из git, если научитесь использовать командную строку (и, я полагаю, соглашусь), и использую только помощники GUI в качестве инструментов, как только вы поймете, чем они занимаются сцены.

PS - git svn rebase предназначен для внесения изменений, внесенных в SVN, поверх вашей текущей отслеживаемой ветви SVN. Если вы пытаетесь объединить 2 разных отслеживаемых филиала SVN, вы захотите использовать git checkout branch-to-update, затем git rebase branch-with-updates (и разрешите любые конфликты, затем git add the-conflicted-file и git rebase --continue до его окончания).