Version control 维护第三方LIB

Version control 维护第三方LIB,version-control,Version Control,假设我有一个在自己版本控制下的项目。然后我想对第三方库做一些更改,所以我想将该库的源代码放在我的项目中的某个地方,与项目的其余部分一起受我的版本控制。但是,第三方库在另一个版本控制软件系统的其他地方进行维护。因为我正在分叉这个库,所以我想为它提取更新,稍后从外部世界提交 我不知道该如何安排这种情况。。。我是否只有第三方库及其版本控制,并且都嵌套在我的版本控制设置中?或者,当我从外部世界获取更新时,我是否在其他地方维护它,并将文件符号链接,甚至复制并粘贴到我的项目中?我通常做的是,拥有第三方库存储

假设我有一个在自己版本控制下的项目。然后我想对第三方库做一些更改,所以我想将该库的源代码放在我的项目中的某个地方,与项目的其余部分一起受我的版本控制。但是,第三方库在另一个版本控制软件系统的其他地方进行维护。因为我正在分叉这个库,所以我想为它提取更新,稍后从外部世界提交


我不知道该如何安排这种情况。。。我是否只有第三方库及其版本控制,并且都嵌套在我的版本控制设置中?或者,当我从外部世界获取更新时,我是否在其他地方维护它,并将文件符号链接,甚至复制并粘贴到我的项目中?

我通常做的是,拥有第三方库存储库的本地副本。但是,该本地副本不是我构建项目的树的一部分。在我的项目回购中,我只有最终的LIB二进制代码,我的代码依赖于相应的报头,在C++的情况下。 这种结构允许我定期提取库更新并对其进行评估,同时确保我的项目使用稳定的库位进行构建。一旦我确保对库的任何新更改都不会破坏我的项目,我就用新的二进制文件更新我的项目repo


当然,您也可以将库源代码直接包含在项目构建中。您甚至可以自动获取更新。但是,如果您这样做,您的项目稳定性将由库维护人员来决定,其来源或行为的任何突破性更改都可能对您的项目进度产生不利影响。

向库的原始维护人员提交修补程序并完全避免这种情况是否更好?