Git p4克隆不遵循对其他分支的文件更改

Git p4克隆不遵循对其他分支的文件更改,git,perforce,git-p4,Git,Perforce,Git P4,我正在尝试将我的(巨大的)p4回购迁移到git。 我做了p4克隆//项目/branchA@all它做了预期的事情——回购了该分支机构创建之前的历史记录。问题是这个分支是从另一个分支创建的,因此第一个“提交”是Branching//proj/branchB/。。。至//proj/branchA/… 现在,当我尝试使用Intellij Idea查看注释时,我可以看到文件创建之前的所有更改。Idea运行的命令是filelog-i-l-t-m1000/path/to/file。日志如下: ... ...

我正在尝试将我的(巨大的)p4回购迁移到git。 我做了
p4克隆//项目/branchA@all
它做了预期的事情——回购了该分支机构创建之前的历史记录。问题是这个分支是从另一个分支创建的,因此第一个“提交”是
Branching//proj/branchB/。。。至//proj/branchA/…

现在,当我尝试使用Intellij Idea查看注释时,我可以看到文件创建之前的所有更改。Idea运行的命令是
filelog-i-l-t-m1000/path/to/file
。日志如下:

...
... ... branch into //proj/branchC/.../file#1
... ... branch into //proj/branchX/.../file#1
change #1234 edit on ...
... ... branch into //proj/branchY/.../file#1
...

现在,显然有一种方法可以跟踪文件并查看当前分支上存在的更改。有人能帮我用git p4或任何其他服务转移所有历史记录吗?

你能做什么呢?将两个分支克隆到单独的回购,然后用git将它们组合在一起

不幸的是,我记不起如何将树枝嫁接在一起的全部细节


可能会有帮助。

你能做的是克隆这两个分支以分离回购,然后使用git将它们组合在一起

不幸的是,我记不起如何将树枝嫁接在一起的全部细节


可能会有帮助。

AFAIK Git跟踪每个分支的合并,而p4跟踪每个文件的合并。因此,前者无法存储后者中包含的所有信息。 每个变更列表都会执行导入过程,方法是根据最新提交修补变更列表之间的差异。在此过程中,git-p4不会查看文件的日志来搜索集成信息。但即使它尝试了,也无法将其导入git。 因此,目前git-p4应该能够导入您的p4存储库并使用git分支对其进行组织,但有一些限制:

  • 您需要提供源分支对和目标分支对
  • p4中的原始“分支”创建不能包含修改,否则可能无法正确检测源的变更列表

    • AFAIK Git跟踪每个分支的合并,而p4跟踪每个文件的合并。因此,前者无法存储后者中包含的所有信息。 每个变更列表都会执行导入过程,方法是根据最新提交修补变更列表之间的差异。在此过程中,git-p4不会查看文件的日志来搜索集成信息。但即使它尝试了,也无法将其导入git。 因此,目前git-p4应该能够导入您的p4存储库并使用git分支对其进行组织,但有一些限制:

      • 您需要提供源分支对和目标分支对
      • p4中的原始“分支”创建不能包含修改,否则可能无法正确检测源的变更列表

      您是否尝试过克隆整个仓库,而不是仅克隆一个分支?我想如果你做了
      p4克隆//proj/branchA
      ,你只会将该分支中的变更列表克隆到git中。你试过克隆整个仓库而不是仅仅克隆一个分支吗?我希望如果你做了
      p4克隆//proj/branchA
      ,你只会将该分支中的变更列表克隆到git中。