クライアントにソースを提供する際に、顧客固有の法的コメント ヘッダー情報をソース ファイルにインストールする必要があり、ソース ファイルに応じていくつかの異なるバージョンのヘッダーが必要です (例: 開発者が指定したカテゴリ)。
だから私が欲しいのは、コード配布ビルド(zipまたはjarファイルを作成する)によって展開されるような文字列を指定するか、どのヘッダーを挿入するかを定義する機能$Id$
です$SpecialName$
$SpecialName: lots of customer specific stuff like a big header of copyright, legal, and
other info
blah blah blah $
そして、彼らがファイル内の何かを変更またはパッチして送り返した場合、変更を git にチェックインし、展開されたビルド"$SpecialName:"
と次の「$」の間のすべてを無視するよう$Id$
にして、チェックイン時に機能させることができます。
この質問"$Format:"
でa への参照を見ましたが、それが何であるか、およびそれが私が探しているものであるかどうかへの参照が見つかりませんでした。
理想的には、リファレンス リポジトリ サーバーで文字列を「読み取り専用」に指定し、すべてのユーザーが変更をプルしたときにその文字列を反映させることができますが、それは最初に機能を実現することとは別の問題です。
1つのアプローチは「フィルター」を使用することのようです-gitブックから:
ただし、その結果の用途は限られています。CVS または Subversion でキーワード置換を使用したことがある場合は、日付スタンプを含めることができます — SHA はかなりランダムであり、ある SHA が別の SHA よりも古いか新しいかを判断できないため、あまり役に立ちません。
コミット/チェックアウト時にファイルで置換を行うための独自のフィルターを作成できることがわかりました。これらは「クリーン」フィルターと「スマッジ」フィルターです。.gitattributes ファイルでは、特定のパスにフィルターを設定し、ファイルがコミットされる直前 (「クリーン」、図 7.2 を参照) およびチェックアウトされる直前 (「スマッジ」) にファイルを処理するスクリプトを設定できます。 、図 7.3 を参照)。これらのフィルターは、あらゆる種類の楽しいことを行うように設定できます。
ここで重要なのは、これをクライアントではなくリポジトリ サーバーで行うのが適切であるということです。「ファイル」データの事前コミットおよび事前チェックアウトの処理は、リポジトリ サーバーで可能ですか?