【问题标题】:Perforce: how to track file "deployments"Perforce:如何跟踪文件“部署”
【发布时间】:2012-11-09 01:14:29
【问题描述】:

我们是一个使用 Oracle Forms/Reports 作为开发工具的非常小的团队,目前我们没有使用版本控制。我们正在考虑使用 Perforce 作为我们的版本控制软件。

我们当前的政策是团队中的任何开发人员都可以更改任何源文件,然后将生成的可执行文件 (.fmx) 部署(手动复制)到我们的生产文件夹中。

使用 Perforce,我们的策略将基本相同,我们只需要记录和跟踪源文件更改以及对生产文件夹的部署。

源代码更改的跟踪是直截了当的。 但是我们如何使用 Perforce 跟踪部署? 如果 Perforce 无法做到这一点,那么任何其他版本控制软件(例如 Subversion、Git、Mercurial 等)都可以做到吗?

【问题讨论】:

  • 所以您希望 VCS 跟踪手动文件复制到文件夹,但不将文件提交/提交到 VCS?
  • Josh:手动复制到生产文件夹是我们目前所做的。对于 Perforce(或任何版本控制软件),我们预计该过程会有所不同。只要每个开发者都能做到,我们就能追踪部署的历史。我们只是不知道如何实现它。
  • 听起来对部署过程的更改是检查二进制文件并通过自动化过程让生产文件夹。二进制文件的历史记录将像源文件一样包含在 VCS 中。
  • 您的意思是编写脚本、Java 程序等,以便在将二进制文件提交到更改列表中时自动将其复制到生产文件夹?我也是这么想的,但不知道在 Perforce 中是否可行,如果可行,如何实现。

标签: git svn version-control mercurial perforce


【解决方案1】:

我建议这样安排:

  • 使用一个 Perforce depot 进行源代码更改
  • 为您要部署的二进制工件使用另一个 depot
  • 构建一些流程(可能是持续集成)并签入工件
  • 在每个部署目标上,维护一个映射到适当构建工件的 Perforce 工作区。
  • 在每个部署目标上,设置一个 cron 作业或计划任务,以在某个时间间隔简单地同步 Perforce 工作区。或者,您可以使用审核守护程序让部署目标知道何时运行同步。

我喜欢这个设置有几个原因:

  • 您在源和构建工件之间具有完全的可追溯性
  • 您可以轻松报告哪些版本的工件已部署到任何目标
  • 您可以使用 Perforce 工具来验证每个目标上工件的完整性

【讨论】:

  • 谢谢!无论是这个还是乔希的方法对我们都有好处。这可能是在跟踪部署的能力和开发人员的小不便(必须签入部署仓库)之间进行权衡。如果可以的话,我会投票给你们两个!
【解决方案2】:

根据我们在 cmets 中对该问题的讨论,我相信您正在寻找的是 Perforce 的 triggers 功能。

从链接页面是一个例子:

change-submit  //depot/....exe  "/usr/bin/test.pl %change%"

配置 Perforce 以在将 .exe 文件签入软件仓库时运行测试脚本。在您的情况下,它将是 .fmx 而不是 .exe,您可能希望将触发器从整个软件仓库缩小到特定目录。

【讨论】:

  • 谢谢!这就是我要找的!
猜你喜欢
  • 1970-01-01
  • 2014-03-10
  • 2010-11-24
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
相关资源
最近更新 更多