私は唯一の開発者であり、Cで記述された組み込みソフトウェアのバージョン管理にGITを使用しています。ソフトウェアはそのバージョンを認識する必要があり、現在、単一の#defineを含むヘッダーファイルを含めることによって実行されています。
#define SOFTWARE_VERSION "1.021"
このヘッダーファイルは、GITリポジトリから最新のタグを取得しようとするビルド済みのPythonスクリプトによって自動的に作成されます(リリースされたすべてのバージョンに現在のバージョン文字列のタグを付けます)。これは、最後のバージョンの文字列を取得するために使用するコマンドです。
git describe --tag HEAD
チェーン全体は期待どおりに機能しますが、堅牢ではないようです(リポジトリがより複雑/分岐するにつれて、チェーンが壊れると思います)。また、これを行うためのより簡単な方法がなければならないので、私は重要な何かを見逃しているかもしれないと思います。
ワークフローや実装の詳細を改善できる人はいますか?(興味があれば、gitdescribeの出力を解析するPythonスクリプトを投稿できます)