我们的服务器设置有多个项目,由多个用户同时工作,位于同一服务器上,每个项目共享一些源代码。设置如下:
- /src/shared/多个项目共享的代码
- /src/project_code/project1特定于 project1 的代码
- /src/project_code/project2特定于 project2 的代码
- 等等
- /projects/project1 project1的输入和输出
- /projects/project2 project2的输入和输出
- 等等
我们希望使用 git 将源代码(共享的和特定于项目的)置于版本控制之下(但由于其大小而不是项目数据)。
我们提出的解决方案是为所有源代码(在 /src 中)建立一个单一的 git 存储库。然后用户将整个存储库检出到相关的项目目录(例如/projects/project1)以处理项目(即进入/projects/project1/src)。这是为了避免更改项目所需的任何共享源代码,从而影响在服务器上处理其他项目的其他用户。这个单一的存储库解决方案似乎很有意义,因为项目特定的代码是指共享代码,因此应该一起跟踪。然后,该计划将根据需要将错误修复/改进提交回 /src。在项目结束时,用户可以提交所有源代码的特定版本,所以在以后,
该系统的主要缺点是每个项目目录将包含共享源代码的副本,以及每个其他项目的源代码。但是由于源代码比较小,这对于硬盘空间来说并不是很大的开销
在我们承诺上述计划之前,我很想听到这个问题的任何更好的解决方案。