У меня есть репозиторий git на основе github, который представляет собой разработку до определенной точки, а затем репозиторий svn, не инициализированный с помощью git svn, который имеет дальнейшую разработку. Я хочу принести изменения svn в репозиторий git, начните использовать репозиторий git для разработки и нажмите изменения, используя git svn dcommit. Это возможно? Целесообразно?
Вот мои особенности:
Мы начали разработку плагина WordPress здесь:
http://github.com/mrdoornbos/wpconfidentcaptcha
Мастер находится в ef82b94a1232b44aae3e, и никаких дальнейших изменений в github не было.
Когда наше приложение на wp-plugins.org было принято, для нас было создано пустое svn repo:
http://svn.wp-plugins.org/wp-confident-captcha/[email protected]
Затем были скопированы некоторые измененные файлы (r256425). Дальнейшие изменения были сделаны, последний из них был r278935.
Я хочу, чтобы изменения SVN были применены к master вместе с метаданными 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 ). Нет общего предка между источником/хозяином и svn/trunk. Я не уверен, куда идти отсюда, или если есть способ получить изменения из svn/trunk на origin/master, так что глава двух репозиториев будет иметь одинаковые файлы и пусть git svn dcommit работать от источника/мастера.
Начиная с нового gythub-репо, кажется самым простым способом, и мне было бы не грустно потерять раннюю историю. Но, похоже, должен быть способ сделать эту работу с существующим реестром github.
(Edit: похоже, что это уже было задано как Как объединить две ветки без общего предка?, но без примера git filter-branch
, необходимого для его создания В отличие от этого вопроса, это public svn и git repos, поэтому возможен ответ с рабочим script.)