Импорт веток с использованием git-p4 - неизвестная ревизия или путь не в рабочем дереве

Я пытаюсь перейти с Perforce на Git. Наше развитие структурировано следующим образом:

Версия 1.3.0 создана, разработана, выпущена в производство. Разработка продолжается, версия 1.3.1 разветвлена ​​и разработана и т. Д.

В настоящее время у нас есть целая куча версий, которые создаются в возрастающем порядке. Моя задача состоит в том, чтобы импортировать эти версии как последовательные ветви, т.е. ветка 1.3.1 выходит из 1.3.0; ветка 1.4.0 выходит из ветки 1.3.1 и т.д...

Я использую следующий набор команд:

git init
git config --add git-p4.branchList 1.3.0:1.3.1
#continue configuration for all of the branches
git p4 sync --detect-branches //depot/path/to/code@all

Конечная конфигурация branchList выглядит примерно так:

[git-p4]
       branchList = 1.3.0:1.3.0
       branchList = 1.3.0:1.3.1
       branchList = 1.3.1:1.4.0
       branchList = 1.4.0:1.5.0
etc...

Когда я запускаю вышеуказанные команды, я получаю сообщение об ошибке:

    Importing revision 457240 (18%)
    Importing new branch common/1.4.0

    Resuming with change 457240
fatal: ambiguous argument 'refs/remotes/p4/common/1.3.1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Command failed: ['git', 'rev-list', '--reverse', '--no-merges', 'refs/remotes/p4/common/1.3.1']

Однако, если моя конфигурация branchList выглядит так:

[git-p4]
           branchList = 1.3.0:1.3.0
           branchList = 1.3.1:1.3.1
           branchList = 1.4.0:1.4.0
           branchList = 1.5.0:1.5.0

Импорт полностью успешен, однако история ветки не отображается должным образом.

В чем здесь проблема?

1 ответ

Решение

В соответствии с вашей конфигурацией branchList ветка 1.4.0 создается из ветки 1.3.1. Но в списке изменений 457240, где ветка 1.4.0 была обнаружена впервые, ветка 1.3.1 все еще не найдена!

Возможно ли, что 1.4.0 и 1.3.1 были созданы из 1.3.0?

Ваша конфигурация branchList должна соответствовать истории интеграции в P4.

Чтобы подтвердить историю интеграции в P4, выберите файл, который существует во всех ветвях и который редко изменяется, и используйте функцию P4V "Revision Graph". Альтернативой является использование команды CLI. p4 filelog //depot/path/to/file,

Другие вопросы по тегам