
答案1
答案2
RPM 實際上有一個很少記錄的VCS
標籤。
它似乎沒有任何關於其使用的指南,但它存在並且受到支持。
cat > test.spec <<'__END__'
Name: foo
Version: 1
Summary: foo
License: None
Release: 1
VCS: git:repo=my-repo:branch=my-branch:sha=1234deadbeef
%description
foo
__END__
$ rpmspec -q test.spec --qf "%{VCS}\n"
git:repo=my-repo:branch=my-branch:sha=1234deadbeef
它似乎僅限於單一解析令牌。還是有用的。我沒有找到任何關於它的明確定義的格式或結構的文檔,並且它的採用是有限的。在我的 Fedora 32 系統上,我發現兩個使用它的軟體包,具有不同的格式:
$ rpm -qa --qf '%{Name} %{VCS}\n' |grep -v '(none)'
bcache-tools https://github.com/g2p/bcache-tools.git
libcue scm:git:https://github.com/lipnitsk/libcue.git
$
坦白說,rpm 不讓我們能夠注入自訂標籤訊息,這真是太遺憾了。我想記錄 Jenkins 建置 ID 和作業名稱、git 提交雜湊以及 git 分支或標籤,但並不真正希望它們出現在變更日誌中。
我可以在帶有X-BS-foo
標籤的 debs 中執行此操作。
您可以查看允許的 rpm 標籤清單rpm --querytags
。
該DISTURL
標籤似乎是保留作其他用途但可能是候選人。
還有URL
;您可以選擇在其中嵌入 SCM 訊息,並進行重定向,以便在瀏覽器存取時將 URL 帶到合理的位置。
您可能會看到支援自訂標籤的“rpm5”的引用。這似乎是 rpm 的死叉,而不是大多數主要發行版上使用的 rpm.org 發行版。
答案3
我認為沒有什麼會阻止您將所有必要的資訊儲存在 docs 目錄中的 VERSION 檔案中。該檔案的路徑可以添加到 VCS 標記中(儘管我還沒有測試過)。