debバージョンは "git tag + git commit hash"です。 =私のaptリポジトリから間違ったバージョンをダウンロードしました。

debバージョンは "git tag + git commit hash"です。 =私のaptリポジトリから間違ったバージョンをダウンロードしました。

私は一つ作ったスクリプトプログラムのコンパイル(ボックス86)、毎週Debianパッケージにパッケージ化され、私のディレクトリにアップロードされます。適切なストレージ(githubでホストされています)
各パッケージバージョンにgitタグ(0.2.1例:)とgitコミットハッシュ(638b341例:)を使用し、それらをtag + sha1(0.2.1+638b341例:)のように配置します。パッケージングのためのcheckinstallが-1最後に追加されるので、私の例ではバージョンが0.2.1+638b341-1

適切なソースにリポジトリを追加すると、aptは間違ったバージョンを取得します。 「epoch」の追加、増分、-1以前の数字の追加、各バージョンごとに増やす()など、いくつかの修正を試しました1-version。しかし、それらのどれも機能しません(または実用的ではありません)。

バージョンに何かを追加する必要があると確信していますが、何を追加するのかわかりません。

助けてくれてありがとう。

答え1

他のすべての条件が同じであれば、aptより高いバージョンを好みます。ハッシュは時間の経過とともに増加しないため、リリースでハッシュを使用すると表示される問題が発生する可能性があります。

2つの一般的な解決策があります。ハッシュの前に単調に増加する数字を追加します。または再びハッシュ値の前に日付を追加します。

後者のアプローチを取ると、今日完了したビルドの場合、必要に応じて「thehash」を置き換える0.2.1+20210320.thehash-1になります。より良い方法は次のとおりです。

git log --date=format:%Y%m%d --pretty=0.0~git%cd.%h

バージョン番号の生成がサポートされます。uscangitリポジトリの現在のヘッダを自動的に更新するために使用できます。

関連情報