私たちのCIの一部は、version.txt
ファイルで指定されたバージョンを使用してレポにタグを付けることです。私たちは、単に実行します。我々は、自動的にバージョンを上げる方法はありませんのでタグがすでにコミット中であればgitタグは失敗しません。タグを付けたい
git tag `cat version.txt`
は、個々の開発者に任されているversion.txt
ファイルを更新し、(私たちがメジャーまたはマイナーリリースを行っているかどうかを知る方法はありません)。つまり、エラーが起きる可能性があります。私たちが望む何
は次のとおりです。
- バージョンが更新されている場合は、レポはタグ付けして展開する必要があります。
- バージョンが更新されていない場合、CIサイクルは失敗します。
- が、 CIサイクルを手動で再起動された場合、これは私が現在はそれがすでに持っているタグにコミットタグ付けしたいとき
git tag
が失敗していなかった場合は要件3を容易に満たすことができスムーズ
実行する必要があります。タグ1.2.3
が古いコミット(良い)内に既に存在する場合である
は、git tag 1.2.3
は失敗しますが、それは私が(悪い)タグ付けしたいコミットである場合、それはまたは失敗し。
すでにコミットされているタグの1つを使って現在のコミットにタグを付ける場合、git tag
に失敗しないように通知する方法はありますか?
そうでなければ、この機能を実装する必要があります。タグを参照するコミットを取得し、HEADの現在のコミットと照合してチェックします。
Git *は*永続的で変更されないタグを前提としています。誰かがタグを削除してから再タグ付けすると、すでに*タグを持っている人は誰も*古い*タグ値を保持します。新しいタグを取得するには、タグも削除してから再作成する必要があります。 1000人のユーザーが2000コマンドを実行するようになります(1つは削除、もう1つは作成)。 – torek