Объединить независимый проект в большой, не теряя истории - PullRequest
2 голосов
/ 23 января 2010

У меня есть независимый проект, модуль CPAN ExtUtils :: MakeMaker . Он также живет внутри Perl . Как правило, будет выпущен релиз MakeMaker, и Perl включит этот tarball в свой репозиторий. Но иногда Perl меняет свою копию MakeMaker, и это изменение нужно будет поместить в репозиторий CPAN. Также история создания MakeMaker внутри Perl продолжается до появления MakeMaker в github.

Вместо того, чтобы иметь два хранилища, я бы хотел, чтобы было одно. Для этого просто зафиксируйте файл perl5.git / cpan / ExtUtils-MakeMaker. Это решает проблему интеграции релизов. Проблема становится сохранением истории, археология кода очень важна для MakeMaker. Репозиторий Github имеет большую часть истории MakeMaker. perl5.git имеет свою историю MakeMaker, также уникальную и интересную. Две истории пересекаются.

Проблема в следующем: как объединить репозиторий github MakeMaker с репозиторием Perl, сохраняя при этом историю для археологического использования? Желательно решение, которое не предполагает ручной настройки отдельных изменений (их тысячи).

Спасибо.

Ответы [ 3 ]

2 голосов
/ 25 января 2010

Вы можете использовать подмодули , или вы можете использовать поддерево слияние (возможно, с помощью стороннего инструмента git subtree).

0 голосов
/ 24 сентября 2012

Примечание: начиная с git1.7.11 (июнь 2012 г.), существует третий вариант со сценарием git поддерева (ранее , разработанным на GitHub с помощью apenwarr , теперь объединены в mainit git)

Таким образом, вы можете объединить одно хранилище (и его историю) в другое, оставив возможность извлекать его историю позже (в отличие от объединения поддеревьев).

0 голосов
/ 23 января 2010

Проверьте, позволяет ли ваш репозиторий пометить и ветвь ваш код, и проверьте, что именно, они точно решат ваши проблемы;

Привет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...