Я хотел бы скопировать проект SVN, чтобы Git с историей - PullRequest
0 голосов
/ 14 мая 2019

Я хотел бы скопировать проект svn в проект git в среде linux.В настоящее время у меня есть проект в SVN-репо с ветками, тегами и структурой папок ствола.Мне нужно скопировать все, чтобы git репо, включая историю.Я думал об использовании svn2git, но у меня нет хорошей идеи о шагах, которым я должен следовать.

1 Ответ

0 голосов
/ 14 мая 2019

svn2git - отличный инструмент. Я использую его для переноса большого проекта. Вам необходимо определить правила для каждой ветви / тегов. Дикие карты - ваш друг.

trunk/A/B
branches/Foo/A/B
branches/Bar/A/B
tags/Baz/A/B
tags/Foobar/A/B

Вот несколько примеров правил. ПРИМЕЧАНИЕ. Правила выполняются по порядку.

match /trunk/
  branch master
end match

match /branches/([^/]+)/
  branch \1
end match 

match /tags/([^/]+)/
  branch refs/tags/\1
  annotated true
end match

Это приведет к следующим ветвям: master, Foo и Bar и тегам Baz и Foobar.

Что-то, что мне потребовалось некоторое время, чтобы выяснить, это если вам нужно глубже изучить путь, который вам нужен для использования функции рекурсии. Например, если коммит копирует все ветви в теги, путь будет просто / branch /. Вы должны править, чтобы перейти в каталог.

match /branches/$
  action recurse
end match

Еще один замечательный инструмент для использования перед написанием ваших правил - svneverever. Это поможет вам написать ваши правила.

https://blog.hartwork.org/posts/before-svn2git-you-want-to-run-svneverever/

...