Слияние двух git историй путем добавления - PullRequest
1 голос
/ 18 марта 2020

Я написал инструмент преобразования из Perforce в Git. Я преобразовал свое хранилище Perforce из списка изменений 500000 в самый актуальный список 800000.

Я хотел бы повторить это преобразование и начать со списка изменений 0. Но это займет 3 недели. Таким образом, вместо преобразования 0 в 800000, я мог бы просто go в 500000 и добавить первый блок истории к уже существующему.

Есть ли какая-либо команда или подход git, которые вы можете объединить двумя историями?

1 Ответ

2 голосов
/ 18 марта 2020

Это - это возможность привить Git графы.

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

Привитой репозиторий может быть преобразован в новый несовместимый хранилище с трансплантатом, сделанным постоянным. Для этого используйте git filter-branch без фильтра. Это очень медленно (но, вероятно, не три недели). (Я полагаю, что новый git filter-repo тоже может это сделать, и, вероятно, он быстрее, но это два больших непроверенных предположения.)

Выполнить эту прививку и сделать ее правильно, по крайней мере, немного сложно. Стоит ли пробовать, решать вам. Если вы можете позволить конверсии работать в течение трех недель, это определенно проще , чем выяснение прививки Git и экспериментирование с filter-repo или использованием filter-branch.

...