1

「.version」という名前のファイルを含む巨大なMercurialリポジトリがあります。このファイルは、コミットが行われるか、更新が行われるたびに、フックを使用して自動的に生成されます。

ただし、このファイルは生成され、バージョン管理されていません(これにより、常に他のプロジェクト開発者との競合が発生しました)。

hg archive

hgアーカイブに関するヘルプページには、オプションがあることが示されています

hg archive -I .version

しかし、この包含を自動的に実行する方法はありますか?

hgrc-fileに関するマンページで、これに関連するオプションは見つかりませんでした。

助言がありますか?

4

2 に答える 2

1

アーカイブ コマンドは、ソフトウェアをパッケージ化するための最終的なソリューションではありません。履歴のないzipファイルまたはtarボールを提供するだけです。それだけです。

そのため、代わりにこれを行うスクリプトを作成してください。スクリプトは、archive を使用してクリーンなファイル セットを取得することで開始できます。

$ hg archive -r 1.0 foo-repo foo-1.0

次に、フックを実行してバージョン ファイルを生成し、必要なファイルをディレクトリにコピーし、ドキュメントをビルドします。最後に、自分でディレクトリをパックします。

士気は、ファイルのスナップショットを取得することがソフトウェアのパッケージ化の最小の部分であるということです。

于 2011-12-09T07:35:30.793 に答える
0

-I を自動的に実行するには、hgrc にエイリアスを設定します。

[alias]
archive = archive -I .version

しかし、私はそうは思いません - 私はあなたが思っていることをします。私の理解では、アーカイブの内容を、パターン「.version」に一致するリポジトリ内のもののみに制限します。これは、リポジトリにないため、何もありません。

.version に必要なのは、アーカイブされているリビジョンのバージョン情報だけである場合、おそらく現在のフックをフックに変更する必要がありますpost-archiveか?

于 2011-12-08T13:34:47.970 に答える