2017-10-05 14 views
1

私はHaskell Stackを使用しています。ビルドしているパッケージのソースコードはgit上にあります。私のstack.yamlはこのようになります:gitからパッケージの最新バージョンを引き出す

packages: 
- location: 
    git: [email protected]:mhwombat/blah-blah-blah.git 
    commit: master 
. . . 

すべてがうまくいきます。しかし、ソースコードがリポジトリで更新されたとします。スタックは最新バージョンをフェッチしません。それは既に持っているバージョンを使い続けます。これまでの私の解決策は.stack-workを削除し、別のstack buildを実行することですが、もちろんすべてを再構築する必要があります。あなたがレンズを使用しているとき、それは長い時間がかかります。

Stackに強制的に最新のバージョンをgitからフェッチする方法はありますか?

すでにstack updatestack cleanを試しましたが、この問題は解決しません。

答えて

1

1つの方法がありますが、コミットとしてマスターの代わりに退屈ですが、最新のコミットのSHA1を配置してください。あなたは実行することで、最新のコミットを得ることができます。出力は次のようになります。

git rev-parse origin/master 

packages: 
- location: 
    git: [email protected]:mhwombat/blah-blah-blah.git 
    commit: de7059a7a7c81c9c8997cad6dce7cdbd5b6c09d9 
. . . 

de7059a7a7c81c9c8997cad6dce7cdbd5b6c09d9

次に、あなたのstack.yamlにあなたはこれを置きますまた、実行時に "forced"スタックが最新のコミットをフェッチするようになりますstack build nもう.stack-workを削除してください。それは単一のコマンドほど単純ではありませんが、それは私のために働いて、あまりにも迷惑ではありませんでした。これはgitだけを使用しているのでスクリプトが可能ですが、スクリプトを作成するのは面倒ではありませんでした。

関連する問題