2017-07-05 7 views
2

hgには、リポジトリ内の最新のコミットのハッシュだけを別々の行に並べることができますか? hg id -iは私に現在のコミットだけを与えます。最新の水銀ハッシュを一覧表示

私のような何かを行うことができることを、このようなhg log-lパラメータに相当な何か:いくつかのコンテキストを与えるために

$ hg id -i -l 3 
1eb0c5a3002e <--- youngest commit 
321c6693361e <--- 2nd youngest commit 
647724838c03 <--- 3rd youngest commit 

は、私は私が水銀ハッシュを渡すbashスクリプトを持っており、それが構築します

./build_image.sh 647724838c03 

私はすべてのhを生成するコマンドが必要なので、ハッシュ引数のコマンドライン補完を取得しようとしています私はcompgenにドロップすることができ灰:

local HASHES=$(cd $REPO && hg id -i -l 10) 
COMPREPLY=($(compgen -W "$HASHES" -- $cur)) 

時間のほとんどは、私が構築したいんだハッシュがそうhg id -iは大丈夫動作しますコミットチェックアウトされますが、最後の10のハッシュの完全なリストを取得しますいいですね!

ありがとうございました!


EDIT

は私がgrepawkを使用して周りの仕事を得た:

$ hg log -l 5 | grep changeset | awk -vn=12 '{print substr($0,length($0)-n+1)}' 
1eb0c5a3002e 
ec0db890a6c3 
321c6693361e 
4a1e2ca2df06 
2d1ef7d57485 

これはしかし素晴らしいではありません。

  • はどのようにhg log出力についての仮定を行います(これはコマンドは私のために少しも神秘的であるawkの異なるバージョンの変更)
  • :)
  • は)あなたは、bashのタブ補完に異なる問題を解決しようとしていると仮定すると(Windows用

答えて

3
を動作しません。

これはあなたがログしているものです。出力を必要に応じてテンプレートします。

hg log -l10 --template="{node|short} {date} {author}\n" 

はあなたに多くのテンプレートオプションの

0c4520bbf388 2017-06-07 12:25 +0200 username <[email protected]> 

アウトhg help templateのような出力を提供します。基本的に、これらの種類の出力を生成するすべての関連コマンドにテンプレートを適用することができます。

マインド:ログをコミット日付で明示的にソートしないと、リポジトリに最新のコミットが10個戻されます。コミット時の順序は必ずしも反映されません。 revsetを追加してソートすることでそれを行うことができます:

hg log --rev="sort(date('<now'))" --template="{node}\n" -l5 
関連する問題