如何更改本地存储库中 minix 的源代码

How to change the source code of minix in a local repository

我一直在想如何解决以下问题。我目前正在学习如何根据自己的喜好修改 OS 的源代码,工作示例是 A.S.Tanenbaum 的 minix.

假设我 运行 minixqemu 并且我将 ssh 端口重定向到 localhost:10022(使用 -net user,hostfwd=tcp::10022-:22),这样我就可以 ssh -p 10022 user@localhost 连接到 qemu 上 运行 的系统。

现在,minix 的源代码位于 /usr/src。我想在我的机器上本地安装此代码——最好在 git 存储库中——并能够修改它,然后推送它并在虚拟机上构建。

总而言之,我想要:

我已经尝试将 /usr/src 制作成一个 git 存储库,我可以将其克隆到我的本地机器上。但是,显然推送到非裸存储库是不可取的,并且不包含任何未提交文件的裸 git 存储库似乎不是可行的方法。

另外,我不想通过推/拉到另一个遥控器来暴力破解它。

对于如何设置我的存储库以创建我想要的工作流程的任何提示,我将不胜感激。

主机:只有一个非裸存储库(+备份)。

VM:/usr/src.

中的一个裸存储库和一个非裸存储库

初始设置:在 VM 的 /usr/src 中创建一个非裸存储库。添加并提交所有内容。将非裸仓库克隆到某处的裸仓库。从 VM 上的裸仓库克隆到主机上的非裸仓库。

工作流程:在主机上编辑源代码,添加并提交。从主机推送到 VM 上的裸仓库。在 VM 上从裸机拉到非裸机并编译。

可以使用 "remote deploy" 挂钩(post-接收或 post-更新)自动从裸拉到非裸。