0

リポジトリ内のコードを使用している環境に応じて、git バージョン管理された php スクリプトでいくつかの構成文字列を変更したいと考えています。

プラットフォームに応じてコード内の構成文字列を変更するために、smudge/clean フィルターを設定したいので、チェックアウトしています (dev/testing)。スクリプトが入っていて、スクリプトで使用される値を設定するため~/scriptsの構成ファイルを追加したい~/scripts/config

同じファイルを含む異なるプロジェクト (異なるリポジトリ内) がありますが、それらは異なる方法で変更する必要があるため、スクリプトはどのリポジトリから呼び出されたかを知る必要があります。

.gitattributes環境変数としてフィルター スクリプトに渡されるファイルにプロジェクト ID を設定する方法はありますか?

例:

の内容.gitattributes:

PROJECT_ID = "ProjectX"

smudge スクリプトの内容 (疑似コード):

host = getConfigValueFromFile(projectXhost)
if $PROJECT_ID == "ProjectX" then
    print 'host=$host'
4

2 に答える 2

1

リポジトリ構成には任意の値を設定できます。たとえば、次のような変数を設定できます。

$ git config mytool.myvariable myvalue

そして、次のように取得します。

$ git config mytool.myvariable
myvalue

したがって、smudge / cleanスクリプトはgit config mytool.myvariable、出力を呼び出して読み取るだけで、構成した情報を取得できます。

于 2012-06-04T15:29:21.657 に答える
0

私は自分で答えを見つけました:

clean/smudge スクリプトは、(新しい) repos ディレクトリを作業ディレクトリとして実行されます。そのため、たとえばファイル.projectIDをリポジトリに配置し、その内容を smudge スクリプトで読み取ることができます。

于 2012-06-04T16:26:02.050 に答える