为多个项目设置Perforce depot

时间:2011-08-28 16:20:28

标签: perforce multiple-projects depot

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

详细信息: 到目前为止,我已经有一个仓库,其中只有一个项目 - ProjectA - 机器人版本A.

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

这意味着ProjectB将与ProjectA共享一些文件,并且一些文件将不同。

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

差异很大,我不想在文件中做#ifdef。一些差异很简单 - 不同的I / O端口映射,有些是完全新的模块。

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

最后,为了最大限度地减少比较中的负担,我想标记我知道的差异,以便在将来的比较中它们不会显示出来。

帮助!

1 个答案:

答案 0 :(得分:1)

你的直觉很好 - 你试图不重复代码。这是优秀设计的核心。工程。

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

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

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

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

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

最后 - 如果项目确实不同,请确定共享代码是否真的是正确的。通常是的,但一切都是一种选择。如果你希望手动“差异”你的文件以寻找差异,那么你需要保持结构足够接近差异。上面提到的“每个项目的不同config.h文件”的想法会有所帮助。

如果您使用自己的差异工具(在python或其他任何方面),您可以使用特殊注释来标记“预期的不同行”。