3

我正在尝试从 Perforce 迁移到 Git。我们的发展结构如下:

1.3.0 版已创建、开发、发布到生产环境。开发仍在继续,版本 1.3.1 已分支和开发等。

目前,我们有一大堆按递增顺序创建的版本。我的任务是将这些版本作为连续分支导入,即分支 1.3.1 来自 1.3.0;分支 1.4.0 来自分支 1.3.1 等...

我正在使用以下一组命令:

git init
git config --add git-p4.branchList 1.3.0:1.3.1
#continue configuration for all of the branches
git p4 sync --detect-branches //depot/path/to/code@all

最终的 branchList 配置如下所示:

[git-p4]
       branchList = 1.3.0:1.3.0
       branchList = 1.3.0:1.3.1
       branchList = 1.3.1:1.4.0
       branchList = 1.4.0:1.5.0
etc...

当我运行上述命令时,我得到一个错误:

    Importing revision 457240 (18%)
    Importing new branch common/1.4.0

    Resuming with change 457240
fatal: ambiguous argument 'refs/remotes/p4/common/1.3.1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Command failed: ['git', 'rev-list', '--reverse', '--no-merges', 'refs/remotes/p4/common/1.3.1']

但是,如果我的 branchList 配置如下所示:

[git-p4]
           branchList = 1.3.0:1.3.0
           branchList = 1.3.1:1.3.1
           branchList = 1.4.0:1.4.0
           branchList = 1.5.0:1.5.0

导入完全成功,但分支历史记录未正确反映。

这里有什么问题?

4

1 回答 1

6

根据您的 branchList 配置,分支 1.4.0 是从分支 1.3.1 创建的。但是在第一次找到分支 1.4.0 的 changelist 457240 处,仍然没有找到分支 1.3.1!

1.4.0 和 1.3.1 是否可能都是从 1.3.0 创建的?

您的 branchList 配置必须与 P4 中的集成历史记录相匹配。

要确认 P4 中的集成历史记录,请选择一个存在于所有分支中且很少修改的文件,并使用 P4V“修订图”功能。另一种方法是使用 CLI 命令p4 filelog //depot/path/to/file

于 2014-11-25T15:17:54.617 回答