我目前正在开发一个可供多个用户使用的工具。该工具利用另一个存储库(存储库 A)作为其助手。用户可能需要不同版本的repo A。所以有时我需要checkout到repo A中的不同提交,然后cmake && make等。上面提到的过程都是自动完成的。这里的问题是,用户请求可能同时到来,所以我需要决定在 cmake && make 过程中何时申请和释放 build lock。如果我在 cmake/make 进程运行时执行
git checkout xxx
,该进程会被损坏吗?
在Python中,我知道一旦程序被加载,你就可以随意修改src文件。但是cmake/make的时候是一样的吗?
如果我在 cmake/make 进程运行时执行
,该进程会被损坏吗?git checkout xxx
是的,这当然是可能的。
我知道一旦程序加载,你就可以随意修改src文件。
这不是一回事,因为 CMake 在开始工作之前不会加载“所有”文件。如果您在编译时更改了它必须使用的文件,则在此过程中某一时间点成立的条件可能会突然不再成立。这种构建的结果是不可预测的。 我建议为每个需要的版本制作一个单独的
git clone
。