Version control libs框架是否应该受版本控制存储库的约束?

Version control libs框架是否应该受版本控制存储库的约束?,version-control,architecture,frameworks,versioning,libraries,Version Control,Architecture,Frameworks,Versioning,Libraries,我们的软件项目在其构建过程中使用了不同的lib(流行的和特殊的lib)和框架。libs永远不会改变,而框架可以随时更改为更新版本 为了进一步扩展开发,我们希望使用版本控制系统。以下哪种解决方案最优雅: 包含所有lib和框架的完整项目将上载到版本控制系统的存储库中,因此每个人都有完全相同的文件,但存储库中的空间使用量非常大 只有随着时间的推移而得到有效更改的项目工件(主程序)才在存储库中。使用过的LIB和框架存储在中央NAS上。->文件也可以用于其他项目 类似于2,但每个人都在其本地工作区中拥有一

我们的软件项目在其构建过程中使用了不同的lib(流行的和特殊的lib)和框架。libs永远不会改变,而框架可以随时更改为更新版本

为了进一步扩展开发,我们希望使用版本控制系统。以下哪种解决方案最优雅:

  • 包含所有lib和框架的完整项目将上载到版本控制系统的存储库中,因此每个人都有完全相同的文件,但存储库中的空间使用量非常大
  • 只有随着时间的推移而得到有效更改的项目工件(主程序)才在存储库中。使用过的LIB和框架存储在中央NAS上。->文件也可以用于其他项目
  • 类似于2,但每个人都在其本地工作区中拥有一份libs和框架的副本

  • 对于我的味觉解决方案2或3,听起来更好,因为我认为存储库应该尽可能轻。你推荐什么?

    这显然是一个观点问题,但我的观点是版本控制最重要的特征是在特定点复制源代码的能力。这包括图书馆。也有缺点(例如boost是巨大的),但它保证每个人都能得到相同的代码,特别是在过时或不受支持的库的情况下

    你可以两者兼得;对源代码管理进行结构化,以便将源代码和lib/framework分开。如果人们愿意,可以将它们放在不同的地方,但每个人都有相同的代码库

    磁盘很便宜;浪费时间想弄明白为什么人们看不到相同的东西是不可能的。最重要的是每个人都保持同步