簡體   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