我正在尝试使用 git-p4.py 脚本将一些 p4 仓库迁移到 github ,但我在导出分支时遇到问题。
p4结构是这样的: //depot1/first_directory/second_directory/projects_directory [例如:project_AA](我想要迁移到单独的 github 存储库的多个目录)
//depot1/versions_directory/project_AA-or-BB-or-CC_xx_yy [例如:project_AA_01_01)(包含不同发布版本的project_directories的其他目录,应放入github存储库project_aa、project_bb等
P4 分支与 AA-version_branch 一样存在,并且具有一个或多个映射视图。
我设法获取标签、提交历史记录(没有来自 //depot1/versions_directory/project_AA-or-BB- 等的提交)和内容。
主要问题是执行 git p4sync --detect-branches --verbose 时检测到分支,但 github 中没有添加分支。 我执行
'git p4 clone --detect-branches --verbose //depot1@all'
只是为了检查在仓库级别将导出哪些分支,但结果与预期相去甚远,例如:
remotes/p4/depot1/first_directory/second_directory/project_AA/directory_inside_project_AA
或 remotes/p4/depot1/other_directory/tags/a_tag_or_label/project_BB/directory_inside_project_BB
但所有生成的分支都不在 p4 分支列表中
我尝试了#37607393上描述的方法,但没有任何结果。我相信这是由于 perforce 存储库结构造成的。
我应该进一步尝试的任何信息或想法吗?
我会尝试这个:
mkdir project_AA
cd project_AA
git init
git p4 sync --branch=main "//depot1/first_directory/second_directory/project_AA@all"
git p4 sync --branch=v1.1 "//depot1/versions_directory/project_AA_01_01@all"
git p4 sync --branch=v1.2 "//depot1/versions_directory/project_AA_01_02@all"
您不能使用--detect-branches,因为版本在目录结构中处于不同的级别。您需要单独同步每个分支。