【问题标题】:Integrate existing Git Repository with Perforce (P4)将现有 Git 存储库与 Perforce 集成 (P4)
【发布时间】:2012-11-07 13:01:12
【问题描述】:

我浏览了网络,但找不到答案。 我想做的是以下几点:

  1. 我有一个 git 存储库,它已经使用了 1 年多,有很多提交
  2. 由于产品化,代码必须移到 P4 代表中。
  3. 但是,代码库(传输后)可能会在 git 和 P4 中发生变化

现在假设 git 中的引用分支是 master

我所做的如下:

  1. 将最新代码从git复制到P4并在那里提交
  2. 使用 git-p4 sync --branch=refs/remotes/p4/masterp4 //../ 在我现有的存储库中创建一个新分支
  3. git 合并 mastermasterp4
  4. 由于缺少共同提交而无法正常工作
  5. 此外,git-p4 submit 无论如何都无法处理合并提交

另一个选择是变基

  1. 从 P4 中的空存储库开始
  2. 使用 git-p4 sync 在 git 中创建一个空的 masterp4 分支
  3. master 重新定位到 masterp4
  4. masterp4 重新定位到 remote/p4/master
  5. 导致数千个 p4 更改列表。

主要问题是主分支和这个 masterp4 分支之间的链接断开。 我想知道是否没有更简单的解决方案。不幸的是,我是一个 git n00b。

感谢您的任何想法,

菲利普

【问题讨论】:

  • Perforce 刚刚推出了 Perforce Git Fusion。 perforce.com/git-fusion
  • 谢谢丹尼尔,我知道这一点,但一些同事告诉我,它在他们的环境中也没有很好地工作。但是,他们没有尝试 git-p4。否则我真的相信有一个解决方案。
  • 你能用 --no-ff 合并来创建一个单一的提交吗?
  • 这个博客可能会提供一些思考:perforce.com/blog/121030/git-fusion-working-open-source。它使用暂存存储库作为协调数据的一种方式,因为 Git Fusion 和 git-p4 都有一些限制。 (Git Fusion 将在明年初支持合并提交。)
  • 也许 --squash 对 git merge 命令有帮助?这应该创建一个与合并分支具有相同效果的单个提交。 (虽然失去了历史)。

标签: git perforce git-p4


【解决方案1】:

我会创建 1000 次 Perforce 提交,以便保留历史记录。

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 2012-01-22
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多