【问题标题】:Setting up Perforce depot for multiple projects为多个项目设置 Perforce 仓库
【发布时间】:2011-08-28 16:20:27
【问题描述】:

总结:需要帮助以了解如何设置软件仓库和我的开发环境,以便我可以支持多个相关项目。

详情: 到目前为止,我有一个仓库,其中只有一个项目 - ProjectA - 机器人版本 A。

我开始开发一个新版本 (ProjectB),它在硬件上有一些差异 - I/O 端口映射和计时器已经改变。我想继续为这两个项目开发代码。

这意味着 ProjectB 将与 ProjectA 共享一些文件,而一些文件将有所不同。

由于差异是与硬件相关的项目,我正在考虑创建一个公共区域,然后项目特定区域,其中公共区域用于设备独立代码,项目特定区域用于设备相关代码。

差异足够大,我不想在文件中执行#ifdef。有些区别很简单 - 不同的 I/O 端口映射,有些是全新的模块。

为了使维护更容易,我希望能够比较设备相关代码之间的差异并传播选定的更改。

最后,为了最大程度地减少我在比较过程中的负担,我想标记我知道没问题的差异,以便在以后的比较中它们不会出现。

救命!

【问题讨论】:

  • 听起来您需要首先阅读有关版本控制的所有内容,然后阅读有关 Perforce 的所有内容。然后回到这里有任何剩余的问题。

标签: perforce multiple-projects depot


【解决方案1】:

你的直觉很好——你正在尝试不重复代码。这是良好设计和工程的核心。

至于文件布局,目录太深总是很烦人,但总比太浅要好得多。也许:

<root>
  main/
    projects/
       robot1/...
       robot2/...
       shared1/
       shared2/

(大型存储库甚至比这更深。)

至于您如何制作共享代码——您可以使用不同的setup.h 或constants.h 来驱动各种共享库的功能。或者,构建您的共享库,以便在运行时对其进行参数化。

SetupDrivers(0x80020); // address of PIO registers

最后——如果项目确实不同,请确定共享代码是否真的是正确的事情。通常是的,但一切都是一个选择。如果您希望手动“比较”您的文件以查找差异,那么让结构保持足够接近以进行差异真的取决于您。上面提到的“每个项目的不同config.h 文件”的想法会有所帮助。

如果您使用自己的 diff 工具(在 python 或其他工具中),您可以使用特殊的 cmets 来标记“预期的不同行”。

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 2011-05-06
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多