Клонирование нестандартного хранилища Svn с помощью Git-Svn

37
задан Shahbaz 7 May 2012 в 10:46
поделиться

2 ответа

Lee B был прав. Ответ, предоставленный депрессантом в #git, должен обновить Мерзавца до 1.6.x (я использовал 1.5.x). 1.6.x предлагает глубоко клонирование так, чтобы несколько подстановочных знаков могли использоваться с --branches опция:

$ git svn clone https://svn.myrepos.com/myproject web-self-serve \ 
          --trunk=trunk --branches=branches/*/* --prefix=svn/
$ git branch -r
  svn/development/sandbox1
  svn/development/feature1
  svn/development/sandbox2
  svn/development/sandbox3
  svn/development/model-associations
  svn/maintenance/version1.0.0
  svn/trunk

Точно, в чем я нуждался. Спасибо за понимание, все.

36
ответ дан Oliver 7 May 2012 в 10:46
поделиться
  • 1
    @KimStebel, я хотел бы иметь полный контроль на представлении, таким образом, я предпочитаю не писать его как блог. Я планирую выпустить источник в darcs, который может помочь следовать за изменениями. – Péter Diviánszky 16 January 2013 в 05:19

Вы могли попробовать svn2git nirvdrum (кажется самым актуальным) для импорта svn в репозиторий мерзавца?
(В начале 2009, Paul упомянул это svn2git iteman в замене этого svn2git исходного jcoglan, который был, поскольку его автор упомянул: "быстрый взлом для вытаскивания моего кода из Подверсии")

лучше, чем git svn clone потому что, если у Вас есть этот код в svn:

  trunk
    ...
  branches
    1.x
    2.x
  tags
    1.0.0
    1.0.1
    1.0.2
    1.1.0
    2.0.0

git-svn пройдет историю фиксации для создания нового мерзавца repo.
Это импортирует все ответвления и теги как удаленные ответвления svn, тогда как то, что Вы действительно хотите, является собственными мерзавцем локальными ответвлениями и объектами тега мерзавца .
Поэтому после импорта этого проекта, Вы добрались бы:

  $ git branch
  * master
  $ git branch -a
  * master
    1.x
    2.x
    tags/1.0.0
    tags/1.0.1
    tags/1.0.2
    tags/1.1.0
    tags/2.0.0
    trunk
  $ git tag -l
  [ empty ]

После того, как svn2git сделан с Вашим проектом, Вы получите это вместо этого:

  $ git branch
  * master
    1.x
    2.x
  $ git tag -l
    1.0.0
    1.0.1
    1.0.2
    1.1.0
    2.0.0
<час>

, Конечно, это решение не предназначено как перелет без возвращения.

можно всегда возвращаться к репозиторию SVN, с... git2svn (также существующий там )

идея останьтесь:

  • SVN на работе как центральный репозиторий.

  • Мерзавец "в другом месте" для быстрого экспериментирования среди нескольких Частных на мерзавца ответвлений.

  • импорт назад только объединенный Мерзавец переходит в официальные ответвления SVN.

13
ответ дан Community 7 May 2012 в 10:46
поделиться
  • 1
    Пока Вы используете свой собственный шаблон, Вы имеете весь контроль над представлением, которое Вы хотите. Отправьте URL repo здесь. – Kim Stebel 16 January 2013 в 06:48
Другие вопросы по тегам:

Похожие вопросы: