Как мне повторно интегрировать репозиторий svn и git без общей истории?

У меня есть репозиторий git на основе github, который представляет разработку до определенного момента, а затем репозиторий svn, не инициализированный с помощью git svn, который продолжает развиваться. Я хочу внести изменения svn в репозиторий git, начать использовать репозиторий git для разработки и отправить изменения с помощью git svn dcommit. Это возможно? Это целесообразно?

Вот мои особенности:

Мы начали разработку плагина WordPress здесь:

http: // github. com / mrdoornbos / wpconfidentcaptcha

Главный адрес: ef82b94a1232b44aae3e, и никаких дальнейших изменений в гитхабе не производилось.

Когда наша заявка на wp-plugins.org была принята, для нас был создан пустой репозиторий svn:

http://svn.wp-plugins.org/wp-confident-captcha/ствол @ 278927

Затем несколько измененные файлы были скопированы в (r256425). Были внесены дальнейшие изменения, последним из которых был r278935.

Я хочу, чтобы изменения SVN применялись к мастеру вместе с метаданными git svn.

Вот что у меня есть (занимает около 4 минут):

git clone git://github.com/mrdoornbos/wpconfidentcaptcha.git github_cc
cd github_cc
git svn init --stdlayout --prefix="svn/" http://svn.wp-plugins.org/wp-confident-captcha
git svn fetch --revision 256362:278935

Это помещает мое дерево github в origin / master, а мое svn-дерево в svn / trunk (и все теги в их собственных ветвях / svn). Между origin / master и svn / trunk нет общего предка. Я не уверен, куда идти отсюда, или есть ли способ получить изменения из svn / trunk в origin / master, чтобы в заголовке двух репозиториев были одинаковые файлы, и пусть git svn dcommit работает из источника /master.

Начать с нового репозитория github кажется самым простым способом, и я бы не стал грустить о потере ранней истории. Но, похоже, что должен быть способ заставить эту работу работать с существующим репозиторием github.

(Edit: похоже, что это уже было задано как Как объединить две ветки без общего предка? , но без примера git filter-branch , необходимого для его работы. В отличие от этого вопроса, это общедоступные репозитории svn и git, поэтому возможен ответ с помощью рабочего скрипта.)

12
задан Community 23 May 2017 в 12:24
поделиться