Open3

GitDB: 手動Git notes

okuokuokuoku

CIの結果を入れるのにGit notesを活用してみてはどうか説。ただ、yuniframeは動作プラットフォームや依存ライブラリがバカみてぇに多く、noteを頻繁に変更(追加)する必要がある。

というわけで、git notesが普通のGitリポジトリで表現できるんだから、手動で作った方が効率的な気がする。

okuokuokuoku

できた

https://github.com/okuoku/rs-gitdb-proto/commit/3d144d3dd8023655c16a0c3581f10bc821ce59b7

やっていることは、単に適当なファイル名(コミットのoidを適当に区切ったもの、拡張子不要)にnotesとなるファイルを書き出しているだけ:

commit 8c44610926f31b579a47d555a36ceb5a5024058c
Author: nobody <nobody>
Date:   Sat Apr 6 15:49:11 2024 +0900

    Write notes

diff --git a/06/39/f144b5329cdff6695ab29789c636aa143d38 b/06/39/f144b5329cdff6695ab29789c636aa143d38
new file mode 100644
index 0000000..bf0c5f2
--- /dev/null
+++ b/06/39/f144b5329cdff6695ab29789c636aa143d38
@@ -0,0 +1,2 @@
+(A) Note for 0639f144b5329cdff6695ab29789c636aa143d38
+with some additional message
\ No newline at end of file

gitのconfigには2つのdisplayRefを書いて:

[notes]
        displayRef = refs/notes/commits
        displayRef = refs/notes/optional

git log とすると両方が出る:

commit 0639f144b5329cdff6695ab29789c636aa143d38
Author: nobody <nobody>
Date:   Sat Apr 6 15:46:03 2024 +0900

    Testing

Notes:
    (A) Note for 0639f144b5329cdff6695ab29789c636aa143d38
    with some additional message

Notes (optional):
    (B) alternative Note for 0639f144b5329cdff6695ab29789c636aa143d38