我将堆栈与 hpack 一起使用,以便.cabal
从 hpack 的package.yaml
. 很多时候,当我想切换分支时,我会为不断更改.cabal
文件而苦苦挣扎。
- 我跑
git restore *.cabal
。工作树处于未分级状态。 - 在我跑步后立即
git switch branch
得到
错误:您对以下文件的本地更改将被结帐覆盖:Package.cabal
- 错误消息是正确的,因为
.cabal
已更改,现在有未提交的更改。我没有观察确切的情况,但在这里我Paths_Package
的分支之间有所不同。
为什么会这样?每次修改都会stack
重新运行吗?在构建之前hpack
重新计算还不够吗?.cabal
这种行为令人沮丧,我现在如何解决它是作为单个命令运行的:
git restore *.cabal && git switch branch
以上作品。它说明了重新计算的时刻是什么?
重要的
最后一件事是重新计算可以从不同的来源触发。我不记得它来自哪里,但我的终端在旁边显示堆栈项目的 ghc 版本。我对触发它的唯一想法是stack --bash-completion-script
。我有来自 aur 的默认 manjaro zsh 配置和堆栈。在切换之前是否有一些守护进程正在等待进行一些更改?
提前致谢!