makefile - 使用不同补丁的多个同时构建,但只 check out 一个存储库

标签 makefile gnu-make virtualfilesystem docker-for-windows docker

我知道标题不好,但我不知道如何表达它。

如果有人认为标题更好,请随时编辑或发表评论并提出建议

场景

你想测试一个公共(public)主干的不同分​​支,并且你想同时构建它们。不幸的是,单次 checkout 代码是 10GB。

理想

您检查分支的共同祖先,然后获得 .patch每个分支的文件。

重要提示:您的构建系统不合适。

然后,您将补丁作为参数输入到……其他可执行文件,该可执行文件将为包含该补丁和您的基本祖先修订的构建创建一个虚拟文件系统。

问题

这样的实用程序存在吗?
不幸的是,Docker 不是一个选项,因为在 Windows 上摇杆仅在 Windows 10 上。

最佳答案

在 Windows 上有很多方法可以做到这一点,最简单的方法是获取具有 UFW 功能的 Windows 10。

另一种方法是使用某种虚拟化软件。例如,Virtualbox 有 differencing images功能,允许为单个 checkout 创建基本磁盘镜像,并为每个补丁创建差异磁盘镜像。 Virtualbox 可以在 linux、mac os 和 windows 主机上运行。你可以在里面运行windows和linux guest。可以使用 VBoxManage 自动创建虚拟机实用程序,因此您可以使测试自动化。

这是另一个可能有帮助的解决方案。这是 linux 的 overlayfs 功能,它允许通过单次结帐创建覆盖文件夹。可以使用 linux 和 virtualbox 为 windows 设置 overlayfs。为此,您必须安装 virtualbox,在其中安装 ubuntu, checkout 项目,为补丁制作覆盖,将覆盖文件夹共享到 Windows 并在 Windows 上运行构建。但我猜UFW会快得多。

关于makefile - 使用不同补丁的多个同时构建,但只 check out 一个存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42036091/

相关文章:

emacs - 从源错误构建 emacs

gnu-make - 读取makefile中的环境变量值

c - 如何编写makefile在不同目录中生成目标文件和可执行文件?

javascript - 适用于分块的浏览器的客户端虚拟文件系统

python - 如何让 Python ssl 模块使用内存中的数据而不是传递文件路径?

makefile - makefile 中的符号链接(symbolic link)

linux - 在 shell 脚本中调用 make 之前无法设置环境变量

gnu-make - --always-make 可以不影响子 make 吗?

linux - Linux 中的设备文件是由特定的文件系统还是虚拟文件系统实现的?

makefile - 那么 "is"AM_(F)CFLAGS 是什么?