2015-03-19 2 views
1

Я пытаюсь перенести проект из Perforce в Git.Миграция отдельных ветвей Perforce в один репозиторий Git

У меня необычный сценарий (по крайней мере, я не нашел никого спрашивать что-нибудь отдаленно подобное), в соответствии с которым проекты Perforce выглядеть следующим образом:

//depot/MAIN 
----------------------------------------X-------------------- 
            /- OTHER merged 
     ------------------------------- 
     //depot/OTHER 

Я пытаюсь перенести MAIN в Git. MAIN запускается до ДРУГОГО и все еще существует. ДРУГИЕ были объединены в MAIN в определенный момент, выполнив операцию «переместить/переименовать» Perforce.

Когда я смотрю Perforce в истории файлов в MAIN, которые первоначально были из OTHER, я могу видеть полную историю , включая изменения, которые произошли до перемещения.

Но когда я переносил MAIN в Git (используя клон git-p4), история всех файлов, поступающих из OTHER, начинается с файлов, перемещенных (на X выше).

Итак, очевидный вопрос: как я могу перенести полную версию в Git, включая изменения, которые были сделаны в OTHER?

ответ

0

Один из вариантов, если нет ничего лучше:

Экспорта и мерзавца отдельно, а затем использовать reposurgeon объединить их вместе - NB: Я не сделал этого, но reposurgeon говорит, что может объединить/привитые сделки РЕПО ,

+0

Насколько я знаю, нет обнаружения объединения осуществляется в GIT-p4 на момент. То, что вы предлагаете, скорее всего, будет лучшим вариантом. – Vitor

+0

@DouglasLeeder, звучит как интересное направление, я начал читать об этом и пытался бежать, но я даже не могу заставить его начать, получив: 'Файл '/home/git-p4/reposurgeon-3.20/ reposurgeon ", строка 182 preserve = {b'.git/config ', b'.git/hooks'}, SyntaxError: недействительный синтаксис'. Есть идеи? Или, возможно, я должен написать новый вопрос об этой проблеме? – traveh

+0

@TalRaveh, какую версию python вы используете? reposurgeon требует 2.7.2 или новее. –

0

Если вы используете Perforce Git Fusion, вы можете создать репо, которое отображает как «главную», так и «другую» ветку.

Когда вы клонируете это репо, оно будет содержать обе ветви, с измененной историей Perforce.

Я не могу точно сказать, как это будет выглядеть, не глядя подробно на историю интеграции.

Более подробную информацию о Git Fusion, в том числе, как создать сделок РЕПО, доступен в админ руководства Git Fusion:

http://www.perforce.com/perforce/doc.current/manuals/git-fusion/

+0

Спасибо, но я не заинтересован в использовании Perforce Git Fusion. Я хочу полностью избавиться от Perforce (мы будем использовать GitHub Enterprise в качестве задней части). – traveh