1

我正在尝试使用 git-p4 工具将 perforce 存储库迁移到 Git,但在分支配置方面遇到了困难。考虑以下 P4 布局:

Folder1/
-- SubFolder1/
-- SubFolder2/
Folder2/
file1.txt
file2.txt

在这里,我需要将 SubFolder1 和 SubFolder2 作为单独的分支迁移,同时将 Folder2、file1 和 file2 保留在 master 分支中。

我尝试在 p4.branchList 配置中指定以下配置:

git config --add git-p4.branchList DEPOT_PATH/Folder1/SubFolder1:Branch1
git config --add git-p4.branchList DEPOT_PATH/Folder1/SubFolder2:Branch2
git config --add git-p4.branchList DEPOT_PATH/Folder1:master

但我得到了这个错误,它不是很有帮助:

p4 describe -s 521710 did not return 1 result: [{'generic': 33, 'code': 'error', 'data': "Operation 'user-describe' failed.\nChange 521705 description missing!\n", 'severity': 4}, {'p4ExitCode': 1}]

很确定我做错了什么,我什至不确定当前的布局迁移是否可以使用 git-p4。任何帮助将不胜感激。

谢谢

更新

我忘了提到我尝试运行 p4 describe 命令,如错误消息中所示,但我收到另一个错误,指出“缺少更改描述”。

4

1 回答 1

1

老实说,我不完全确定可以做你想做的事。假设每个分支都驻留在一个完全独立的目录结构中,而不是在子目录下,则实现了分支检测。

尽管如此,您不应该在该配置中使用软件仓库路径。这些是始终与导入过程中使用的原始库路径相关的目录对。请注意,每一对都应该是integrate(或类似)操作的源目录和目标目录。也就是说,假设您具有以下结构:

//depot/project/main
//depot/project/branch1
//depot/project/branch2

并且分支是使用以下方法创建的:

p4 integrate //depot/project/main //depot/project/branch1
p4 integrate //depot/project/branch1 //depot/project/branch2

然后使用导入时需要配置以下分支git p4 clone //depot/project/...@all

git config --add git-p4.branchList main:branch1
git config --add git-p4.branchList branch1:branch2

因此,按照您的具体示例,如果您使用以下命令导入:

git p4 clone --detect-branches //depot/path/...@all

然后你只需要在部件之后/path/包含路径。

假设 DEPOT_PATH//depot/project_root和 import command git p4 clone --detect-branches //depot/...@all,您将需要以下配置:

git config --add git-p4.branchList project_root:project_root/Folder1/SubFolder1
git config --add git-p4.branchList project_root:project_root/Folder1/SubFolder2

也就是说,SubFolder1 和 SubFolder2 都是从 project_root 集成的。

于 2017-06-02T10:46:30.597 回答