代码之家  ›  专栏  ›  技术社区  ›  Łukasz Baran

将git更改推送到perforce

  •  1
  • Łukasz Baran  · 技术社区  · 6 年前

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

    github上有不真实的引擎存储库。我有性能服务器。 目前,我已将perforce workspace设置在与保留未读引擎源的文件夹相同的文件夹中。

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

    2 回复  |  直到 6 年前
        1
  •  2
  •   Samwise    6 年前

    将perforce工作区映射到本地git repo(排除相关的 .git 从视图中键入路径),然后运行 p4 reconcile 以获取当前更改。

    所以工作流程是:

    git pull
    p4 reconcile
    p4 submit
    
        2
  •  1
  •   Luke    6 年前

    您可以使用git-p4来完成此操作。

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

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

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

    $ 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更改列表。您可以编写一个小脚本,然后以增量方式导入新的更改。