Попытка синхронизации из Perforce в GIt, один и тот же продукт из разных выпусков - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь синхронизировать данные с Git, один и тот же продукт из разных выпусков с различными ветками, и мне нужно делать это еженедельно.Мне не нужно делать это наоборот (git-> Perforce), и в репозитории Git не будет никаких изменений, это просто односторонняя синхронизация в неделю

  (perforce)//depot/Rel1/cla  -> master in git
  (perforce)//depot/Rel2/cla  -> branch1 in git

 Is there any way to sync both the branches at the same time to git? 
 Is there any way to Sync from the label of each release to git?Instead of the release it self? 
 And as i need to do it weekly, is there way to do just the delta on every next scan? 

Я следовал этому git-p4 переносит ветки в разные подкаталоги до определенной степени, но так как имена конечных папок мне нужны для синхронизации, я немного растерялся, как это сделать

   This is what i tried
    p4 branch -o test | grep //
    //depot/Rel1/... //depot/Rel2/...

   git config git-p4.branchList Rel1:Rel2

    client view - View:
    //depot/... //myws/...

    git init
    git config git-p4.useClientSpec true
    git config git-p4.client myws
    git config git-p4.branchUser myusername
    p4 changes //depot/Rel1/...  | cut -d' ' -f2 >> list.txt
    p4 changes //depot/Rel2/... | cut -d' ' -f2 >>  list.txt
    git p4 sync //depot/... --detect-branches --verbose --changesfile list.txt 

После этого команда запускаетсябесконечно в течение нескольких часов, и мне пришлось убить его, после этого я запустил

       git branch -a
     remotes/p4/depot/Rel1 (Only Rel1 and no Rel2) 

Это то, что я вижу в журнале, для Rel1 это выглядит хорошо, для Rel2 это не выглядит хорошо

                   ^MImporting revision 1998133 (46%)Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', '-x', '-', 'where']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', '-x', '-', 'print']
    branch is Rel1
    looking for initial parent for refs/remotes/p4/depot/Rel1; current parent is
    Parent of refs/remotes/p4/depot/Rel1 not found. Committing into head of
    commit into refs/remotes/p4/depot/Rel1
    ^M//depot/Rel1/cla/depot/bb/cClient/uifclient/src/main/java/com/depotm/crm/isupport/site/popup/properties 100% (0 MB)^M//depot/Rel1/cla/depot/bb/cClient/uifcli
    ent/src/main/java/com/depotm/crm/isupport/site/popup/properties --> cla/depot/bb/cClient/uifclient/src/main/java/com/depotm/crm/isupport/site/popup/Cpro
    perties (0 MB)
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'describe', '-s', '1998144']
    ^MImporting revision 1998144 (48%)Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', '-x', '-', 'where']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@1,513']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@514,1026']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@1027,1539']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@1540,2052']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@2053,2565']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@2566,3078']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@3079,3591']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@3592,4104']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@4105,4617']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@4618,5130']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@5131,5643']
    Opening pipe: ['p4', '-c', myws, '-r', '3', '-G', 'changes', '//depot/Rel2/...@5644,6156']

Любая помощь / руководство приветствуется

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Используйте параметр "-v", и он покажет вам, что он делает.

Это будет довольно медленно, если задержка приема-передачи на ваш сервер P4 будет достаточно большой.

0 голосов
/ 25 мая 2018

У вас есть одно из этих огромных хранилищ.К сожалению, пока нет отличного решения вашей проблемы, по крайней мере, на данный момент.

Использование --max-changes <n> по-прежнему будет проверять все блоки изменений перед остановкой.Возможно, может помочь использование --changes-block-size <n> для уменьшения количества блоков.

Клонирование с использованием //depot/...@<n>,<n+1> с использованием первого списка изменений, который влияет на //depot/Rel1/, по крайней мере, позволит вам проверить, работает ли обнаружение ветвлений.Но если я правильно помню, последующие звонки на sync не удастся (не могу подтвердить прямо сейчас).

...