如何让--detect-branches与git-p4一起使用?

Mic*_*nan 10 git perforce git-p4

我的p4存储库的结构类似于:

//depot/project/branch1
//depot/project/branch2
//depot/project/branch3
... etc
Run Code Online (Sandbox Code Playgroud)

但是,当我使用git-p4克隆"项目"时,所有3个分支都不被视为分支,并且所有分支都被克隆到单个主分支中.

这就是我调用的方式git-p4:

git-p4 clone --detect-branches //depot/project
Run Code Online (Sandbox Code Playgroud)

我期望git-p4为" project" 创建一个带有三个分支的git数据库,项目的根将映射到分支名称后的路径部分(例如:if //depot/project/branch1有一个名为" lib"(//depot/project/branch1/lib)的子目录然后我的本地文件系统应该像/git_project/lib3 git分支一样).

我错的是什么?我调用git-p4不正确吗?

Von*_*onC 1

如果您查看git-p4 代码最初也在这里),您会看到:

if self.detectBranches:
  branches = self.splitFilesIntoBranches(description)
  for branch in branches.keys():
    ## HACK  --hwn
    branchPrefix = self.depotPaths[0] + branch + "/"
Run Code Online (Sandbox Code Playgroud)

探索splitFilesIntoBranches分支的 p4 存储库。

所以也许git-p4 clone //depot/project@all --detect-branches会很好(使用@all如这个SO答案,以及--detect-branches回购路径之后的选项)?

话虽这么说,如果脚本不够智能,无法管理它,可能更简单的解决方案是运行它 3 次,每个分支运行一次,然后将结果导入到一个 Git 存储库中。