繁体   English   中英

从 git 中拉取最新版本的包

[英]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 updatestack 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM