摘要:想要帮助了解如何设置软件仓库和我的开发环境,以便我可以支持多个相关项目。
详细信息: 到目前为止,我已经有一个仓库,其中只有一个项目 - ProjectA - 机器人版本A.
我开始研究新版本(ProjectB),它在硬件上有一些差异 - I / O端口映射和定时器已经改变。我想继续为这两个项目开发代码。
这意味着ProjectB将与ProjectA共享一些文件,并且一些文件将不同。
由于差异是硬件相关的项目,我正在考虑的是创建一个公共区域,然后投影公共区域用于设备无关代码的特定区域,项目特定区域用于设备相关代码。
差异很大,我不想在文件中做#ifdef。一些差异很简单 - 不同的I / O端口映射,有些是完全新的模块。
为了使维护更容易,我希望能够比较设备相关代码之间的差异并传播所选的更改。
最后,为了最大限度地减少比较中的负担,我想标记我知道的差异,以便在将来的比较中它们不会显示出来。
帮助!
答案 0 :(得分:1)
你的直觉很好 - 你试图不重复代码。这是优秀设计的核心。工程。
至于文件布局,让你的目录太深,总是很烦人,但这比太浅的要好。也许:
<root>
main/
projects/
robot1/...
robot2/...
shared1/
shared2/
(大型存储库比这更深,甚至。)
至于如何创建共享代码 - 您可以使用不同的setup.h
或constants.h来驱动各种共享库的功能。或者,构建共享库,以便在运行时进行参数化。
SetupDrivers(0x80020); // address of PIO registers
最后 - 如果项目确实不同,请确定共享代码是否真的是正确的。通常是的,但一切都是一种选择。如果你希望手动“差异”你的文件以寻找差异,那么你需要保持结构足够接近差异。上面提到的“每个项目的不同config.h
文件”的想法会有所帮助。
如果您使用自己的差异工具(在python或其他任何方面),您可以使用特殊注释来标记“预期的不同行”。