git и git-svn и несколько веток и push и fetch - PullRequest
3 голосов
/ 04 октября 2010

A git svn clone с --stdlayout дайте мне несколько веток, если исходное репозиторий SVN имеет несколько ветвей (и тегов).

Я хочу отправить всех из них в другой gitСделки рЕПО.git svn clone, похоже, восстановил всю историю для всех версий.Это вопрос предоставления более точных инструкций для git push?

Вот мое, возможно, ошибочное намерение рабочего процесса.

  1. запустить git svn, чтобы клонировать svn в частный репозиторий.
  2. перенесите его в общее репо, управляемое с помощью gitosis
  3. создайте общую рабочую ветку
  4. различные люди управляют репозиторием, управляемым gitosis, создают частные ветви и объединяются в общую рабочую ветку.
  5. Я вытягиваю из общего репо обратно в тот, который я создал на шаге 1, объединяюсь в транк и dcommit.

Вот вывод git branch -a после запуска git svn clone.

/Users/benson/x/tsk/tsk_git_svn git branch -a
* master
  remotes/origin/master
  remotes/sleuthkit-3.0
  remotes/sleuthkit-3.1
  remotes/tags/sleuthkit-3.0.0
  remotes/tags/sleuthkit-3.0.1
  remotes/tags/sleuthkit-3.1.0
  remotes/tags/sleuthkit-3.1.0b1
  remotes/tags/sleuthkit-3.1.1
  remotes/tags/sleuthkit-3.1.2
  remotes/tags/sleuthkit-3.1.3
  remotes/tags/sleuthkit-3.1.3b1
  remotes/tags/sleuthkit-3.2.0b1
  remotes/tags/sleuthkit-3.2.0b2
  remotes/trunk

Ответы [ 2 ]

2 голосов
/ 04 октября 2010

вы можете попробовать git push --mirror, чтобы быть уверенным, что все ссылки будут передаваться из одного git-репо в другой:

из git push:

--mirror

Вместо того, чтобы называть каждую ссылку нажатием, указывает, что все ссылки в refs/ (включая, но не ограничиваясь refs/heads/, refs/remotes/ и refs/tags/) будут отражены вудаленный репозиторий.
Вновь созданные локальные ссылки будут отправлены на удаленный конец, локально обновленные ссылки будут принудительно обновлены на удаленном конце, а удаленные ссылки будут удалены с удаленного конца.

Но я бы рекомендовал svn2git (если вы не планируете регулярно обновлять свое SVN-репо), чтобы получать реальные теги вместо "веток" для тегов.

0 голосов
/ 12 мая 2012

Если у вас есть доступ к вашему SVN-серверу, я бы порекомендовал двухэтапное решение:

$ subgit install path/to/svn/repository
$ cd path/to/svn/repository
$ git push --all <target Git repository>

Обратите внимание, что целевой репозиторий Git должен быть пустым, чтобы избежать проблем (созданных командой git init --bare)

...