[英]Pull latest version of package from git
我正在使用 Haskell Stack,我正在构建的包的源代码在 git 上。 我的stack.yaml
看起来像这样:
packages:
- location:
git: git@github.com:mhwombat/blah-blah-blah.git
commit: master
. . .
一切都很好。 但是,假设在存储库中更新了源代码。 Stack 不获取最新版本; 它继续使用它已有的版本。 到目前为止,我的解决方案是删除.stack-work
并执行另一个stack build
,但当然它必须重建所有内容。 当您使用镜头时,这需要很长时间。
有没有办法强制 Stack 从 git 获取最新版本?
已经尝试过stack update
和stack clean
,但他们没有解决这个问题。
有一种方法,但它是乏味的,而不是 master 作为提交,放置最新提交的 SHA1。 您可以通过运行获得最新的提交:
git rev-parse origin/master
输出应如下所示: de7059a7a7c81c9c8997cad6dce7cdbd5b6c09d9
然后在您的 stack.yaml 中放置:
packages:
- location:
git: git@github.com:mhwombat/blah-blah-blah.git
commit: de7059a7a7c81c9c8997cad6dce7cdbd5b6c09d9
. . .
当您运行stack build
时,您将“强制”堆栈获取最新提交,而无需再删除.stack-work
。 它不像单个命令那么简单,但它对我有用并且不太烦人,作为对我的奖励,它帮助我冻结了依赖项。 这是可编写脚本的,因为它只使用 git,尽管我编写脚本还不够乏味。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.