2014-10-03 3 views
2

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

Версия 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/[email protected] 

Final конфигурации 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'] 

Однако, если моя веткаList confi guration выглядит так:

[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 

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

В чем проблема?

ответ

4

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

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

Конфигурация вашего филиалаList must соответствует истории интеграции в P4.

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

+0

Вы действительно умный человек, чтобы добраться до этого вывода; действительно, 1.4.0 и 1.3.1 созданы из 1.3.0. У меня есть два последующих вопроса: 1) в этом случае Perforce пытается импортировать 1.4.0 до 1.3.1? 2) Мне еще нужно это сделать, но как просмотреть историю интеграции в Perforce GUI? Спасибо за ответ! – worldpart

+0

Найти файл, который существует во всех ветвях, и не часто изменяется и отслеживать его историю с помощью функции Revision Graph с помощью функции p4v или использовать команду CLI: 'p4 filelog // depot/path/to/file' – Vitor