我一直想知道如何解决以下问题。我目前正在学习如何根据自己的喜好修改操作系统的源代码,工作示例是A.S.Tanenbaum的minix
。
假设我使用minix
运行qemu
并将ssh端口重定向到localhost:10022
(使用-net user,hostfwd=tcp::10022-:22
),以便我ssh -p 10022 user@localhost
可以连接到qemu
在minix
上运行的系统。
现在,/usr/src
的源代码位于git
。我希望在我的机器上本地使用此代码 - 最好在minix
存储库中 - 并且能够修改它然后推送它并在虚拟机上构建。
总结一下,我想:
/usr/src
' git push
的副本minix
来自我的机器(或类似的东西),所以如果我的更改完全破坏了系统,我可以从/usr/src
我已经尝试将split(list(range(1,101)),2)
# should return
[[1,50],[51,100]]
split(list(range(1,101)),3)
# should return
[[1,33],[34,66],[67,100]]
split(list(range(1,6)),3)
# should return
[[1,2],[3,5]] # Ideally last element should merge with last if last one has no pair.
放入我可以克隆到本地计算机的git存储库中。但是,显然不推荐使用非裸存储库,并且一个不包含任何未提交文件的裸git存储库似乎不太可能。
另外,我不想通过推/拉到另一个遥控器来强制它。
我很感激有关如何设置我的存储库以创建所需工作流程的任何提示。
答案 0 :(得分:1)
主机:只有一个非裸存储库(+备份)。
VM:/ usr / src中的一个裸存储库和一个非裸存储库。
初始设置:在VM中的/ usr / src中创建一个非裸存储库。添加并提交所有内容。将not-bare repo克隆到某个裸存储库。从VM的裸仓库克隆到主机上的裸机。
工作流程:在主机上编辑源,添加和提交。从主机推送到VM的裸仓库。在虚拟机上从裸机拉到裸机并编译。
可以使用"remote deploy"挂钩(接收后或更新后)自动从裸露到非裸露。