hiro99ma blog: [golang] go.mod の pseudo-version の調べ方がわからん
https://hiro99ma.blogspot.com/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: 20211121014212v3
最初は時間が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 にでも設定しておけばいいや。
ただこの方法も完璧ではなくて、force pushして前と同じhashなのに時刻だけが変更された場合、既にclone済みでhashが一致していると時刻が更新されないようだった。
返信削除まあ、あんまり変なことはするなということだ。