繁体   English   中英

为多个项目设置Perforce软件仓库

[英]Setting up Perforce depot for multiple projects

简介:需要帮助来弄清楚如何设置软件仓库和开发环境,以便我可以支持多个相关项目。

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

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

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

由于差异是硬件相关项目,因此我想做的是创建一个公共区域,然后投影特定区域,其中公共区域用于设备独立代码,而项目特定区域用于设备依赖代码。

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

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

最后,为了最大程度地减少比较时的负担,我想标记一些我知道可以的差异,以免在以后的比较中它们不会出现。

救命!

您的直觉很不错-您正在尝试不重复代码。 这是良好设计与工程的核心。

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

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

(大型存储库比这还要深得多。)

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM