Мой p4 репозиторий имеет структуру, подобную:
//depot/project/branch1
//depot/project/branch2
//depot/project/branch3
... etc
Однако, когда я использую git-p4
для клонирования "проекта" все 3 ответвления не рассматривают как ответвления, и все клонированы в единственное основное ответвление.
Это - то, как я вызываю git-p4
:
git-p4 clone --detect-branches //depot/project
Я ожидал git-p4
создать базу данных мерзавца для"project
"с тремя ответвлениями и корнем проекта был бы отображен на части пути после имени ответвления (например: если //depot/project/branch1
назвали подкаталог"lib
" (//depot/project/branch1/lib
) затем моя локальная файловая система должна быть чем-то как /git_project/lib
с 3 ответвлениями мерзавца).
То, что я ожидаю неправильно? Я вызываю git-p4
неправильно?
Если вы посмотрите на код git-p4 (также изначально здесь), вы увидите:
if self.detectBranches:
branches = self.splitFilesIntoBranches(description)
for branch in branches.keys():
## HACK --hwn
branchPrefix = self.depotPaths[0] + branch + "/"
с splitFilesIntoBranches
исследуя репо p4 на наличие ветвей.
Так может быть git-p4 clone //depot/project@all --detect-branches
подойдёт (с @all как в этом SO answer, и опцией --detect-branches
после пути к репо)?
Учитывая это, если скрипт недостаточно умен, чтобы справиться с этим, возможно, более простым решением будет запустить его 3 раза, по одному на ветку и импортировать результат в одно Git-репо.