首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Git工作树时高效Bazel构建的最佳实践

使用Git工作树时高效Bazel构建的最佳实践
EN

Stack Overflow用户
提问于 2022-07-18 18:01:36
回答 2查看 184关注 0票数 0

我使用git的“工作树”功能来管理我的回购工具的分支。这意味着每个活动分支都位于自己的目录中,切换分支是通过切换目录来完成的。

不幸的是,这似乎与bazel发生了严重的交互作用。即使使用共享磁盘缓存,我也发现bazel为每个工作树目录从我的工作区文件中重新下载远程存储库(可能是因为远程操作)。其中有些很大,而且很慢。(我可以安装一个squid代理,但我觉得bazel的缓存应该足够了)。

我已经找到了这一讨论,但没有解决方案。

我确信其他用户正在使用bazel和git工作树解决方案。其他用户可以提供什么建议?其他用户发现了什么bazel配置可以改善这种情况?

EN

回答 2

Stack Overflow用户

发布于 2022-07-18 20:01:39

对于不同的分支,共享一个输出基将是很好的。将基座设置为某些共享文件夹,如bazel --output_base=my_output_base build //...。您可以通过向适用的startup --output_base=my_output_base中添加像巴泽尔克这样的行来使其自动化。

请注意,这将防止不同文件夹中的并发生成。他们将排队一次运行一个。

票数 1
EN

Stack Overflow用户

发布于 2022-07-19 06:47:09

利用远程生成缓存

您可以通过以下方式创建您自己的本地instance_:

代码语言:javascript
复制
sudo docker run -u 1000:1000 -v ~/bazel_remote_cache:/data \                       
        -p 9090:8080 -p 9092:9092 buchgr/bazel-remote-cache

您可以设置一个主RC文件(.bazelrc)来使用远程构建缓存:

代码语言:javascript
复制
cd ~
echo "build --remote_cache=http://localhost:9090" >> .bazelrc

如果现在进行构建,则使用远程缓存。

在切换分支时,应该已经缓存了很多东西。根据我的经验,远程缓存在这里比本地缓存工作得更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73026679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档