把构建软件的一切事物都放在版本控制中, 这话怎么理解?

发布于 2022-08-25 12:56:48 字数 110 浏览 22 评论 0

如题,在持续集成中有这么一种说法,就是讲构建需要的所有东西全部扔到版本控制中去。 不是太明白为什么要这样做。

另外, 如果工程中使用到了第三方的库, 这些库的二进制文件也要签入到版本控制中去吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

喜爱皱眉﹌ 2022-09-01 12:56:48

你可以把这些第三方库也签入版本控制中,这样的好处是,所有人check out之后无需另外的操作,就有所有的依赖的库了。坏处是会让你的库有些臃肿。

否则还有一种办法是你要维护一个第三方的列表,记录上所有的第三方库,并且通过某种机制,给所有开发者自动安装管理这些库。比如ubunut的apt-get install,或者python的pip install等等

黯淡〆 2022-09-01 12:56:48

我觉得这句话应该这样理解:
仅仅通过版本库中的文件(脚本),就可以构建出一个成品软件。

根据这个原则,你可以编写一个脚本,用来下载和安装第三方库, 使用git, apt, pip之类的包管理器,很简单。最后实现,只需下载版本库,并运行一个脚本,就能构建出成品软件。

抹茶夏天i‖ 2022-09-01 12:56:48

目的是为了最小知识的情况下,可以编译构建软件。

都放到版本库,用户只要checkout,build即可。最少知识。

如果有些依赖文件不在,就需要有人(或者文档)指明以依赖文件在哪里,如何下载,那个版本,放置何处。。。blabla。。。知识爆炸。还得依赖人。

我有时候会以咨询方式进入某个team,为了了解产品代码,需要的第一个步骤就是build。有些产品,build一次,不找N个人是不过去的,找不到的人,就等。深恨之。不过是build一个软件,如此麻烦。不想玩了。后来,我就要求必须提供Ant Makefile 之类的,必须一步构建,然后世界安静了。

而有些checkout来,虽然无构建帮助文档,进入打开solution就可以跑出成品,舒服。

二进制加入版本库的问题:好处是在build的时候,无需管依赖关系(因此的好处,前面提到了)。坏处是占用版本管理开销。我的选择是丢进去。是不管这个开销的,硬盘空间算什么。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文