2021/12/05

[golang] go.mod の pseudo-version

hiro99ma blog: [golang] go.mod の pseudo-version の調べ方がわからん
https://blog.hirokuma.work/2021/11/golang-gomod-pseudo-version.html

git log を加工したらよいのではなかろうか、ということでこうなった。

TZ=UTC git log -n1 --abbrev-commit --abbrev=12 --date=format-local:%Y%m%d%H%M%S

 

たとえばここだとこうなる。

$ TZ=UTC git log -n1  --abbrev-commit --abbrev=12 --date=format-local:%Y%m%d%H%M%S
commit 382e4677bbfb (HEAD -> main, tag: v3, origin/main, origin/HEAD)
Author: hirokuma <hiro9ma@gmail.com>
Date:   20211121014212

    v3

最初は時間がJSTになってて、go mod tidyするとタイムスタンプが違うといわれてしまった。
かといってどうやって UTC にするんじゃ?ってなって。TZ 設定したけど --date=format: にしていたので反映されずに悩んでしまった。

metadata - Git: show dates in UTC - Stack Overflow
https://stackoverflow.com/questions/21363187/git-show-dates-in-utc

 

先頭の 1つだけしか出力しないのだが、私の使い方だとそれで十分だ。

が、ちょっと欲が出るよね?
もうちょっと go.mod 風の出力にならんだろうかと。

$ TZ=UTC git log -n1  --abbrev-commit --abbrev=12 --date=format-local:%Y%m%d%H%M%S --format=format:%ad-%h
20211121014212-382e4677bbfb

コマンドラインが長いのだけど、どうせ記憶できる長さじゃないので alias にでも設定しておけばいいや。

1 件のコメント:

  1. ただこの方法も完璧ではなくて、force pushして前と同じhashなのに時刻だけが変更された場合、既にclone済みでhashが一致していると時刻が更新されないようだった。
    まあ、あんまり変なことはするなということだ。

    返信削除

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。