【问题标题】:Push Git changes to perforce推送 Git 更改以强制执行
【发布时间】:2018-06-28 16:16:06
【问题描述】:

通常有关于如何将 perforce 更改推送到 git repo 的问题,通常是关于 perforce 到 git 工作流,但没有其他方式。

GitHub 上有虚幻引擎存储库。我有 perforce 服务器。 目前,我已将 Perforce 工作区设置在与我保存虚幻引擎源的位置相同的文件夹中。

现在我想定期从 Unreal git repo 中提取更改,并让它们自动反映在 perforce 上。 (如新文件、更改等)。并不真正关心反映历史或提交名称。只需将所有更改/新文件从 git 添加到 perforce,并让 perforce 自动选择它,而无需我手动处理每个文件并添加它。

【问题讨论】:

    标签: git perforce


    【解决方案1】:

    将 Perforce 工作区映射到本地 git 存储库(从视图中排除相关的 .git 类型路径),然后运行 ​​p4 reconcile 以获取当前更改。

    所以工作流程是:

    git pull
    p4 reconcile
    p4 submit
    

    【讨论】:

    • 谢谢。我想过这样做,但不确定这是否是一个好的解决方案。
    • 可以设计解决方案来保留更多的提交历史,但鉴于您不关心历史并且只想要头部修订,我认为它不会得到比运行这两个命令更容易。 :)
    【解决方案2】:

    您可以使用 git-p4 来执行此操作。

    在 Perforce 中创建一个空分支,添加一个文件(不能克隆空目录;不要与 git 中的任何内容冲突),然后使用 git-p4 克隆它。

    $ git p4 clone //depot/your_area
    $ cd your_area
    

    现在您可以将您的 git 存储库添加为远程,然后将所有提交精选到您的新存储库中:

    $ git remote add your_git_repo /path/to/git/repo
    $ git fetch your_git_repo
    $ git cherry-pick ..your_git_repo/master
    

    假设您已经有一个 Perforce 客户区映射 //depot/your_area,您现在可以提交:

    $ git p4 submit
    

    此时,您的 git 更改将全部显示在 Perforce 中,作为单独的 Perforce 更改列表。您可能可以编写一个小脚本,然后逐步导入新的更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-16
      • 2021-12-19
      • 1970-01-01
      • 2017-02-08
      • 2017-09-19
      • 2019-11-28
      • 2015-10-02
      • 2021-11-05
      相关资源
      最近更新 更多