1

バックグラウンド

smarty テンプレートを使用する場合、ファイルのコピーを作成し、次のように文字列-USERMODを追加することで、ファイルをオーバーライドできます。

original_file.html
original_file-USERMOD.html

.gitattributes ファイルで両方のファイルをターゲットにする方法はありますか?

2 番目のタイプのファイルをターゲットにするのは簡単です。

*-USERMOD* export-ignore

文字通り、ルールは次のようになります:
「-USERMOD.original_extension で終わるファイルのコピーがある場合、コピーオリジナルの両方を無視する」

もちろん、これらのファイルはいつでも手動で追加できますが、自動化されたソリューションがいいでしょう。

gitignore(5) の man ページ (パターン マッチングの説明のために gitattributes(5) によって参照される) には、次のように書かれています。

それ以外の場合、Git はパターンを、FNM_PATHNAME フラグを指定した fnmatch(3) による消費に適したシェル グロブとして扱います。

私が知る限り、シェル グロブは必要なことを実行できません。ただし、最終的な目標は、git に USERMOD ファイルとそのオリジナルを無視してエクスポートするように指示することです。したがって、これを解決するソリューションはすべて受け入れられます。

4

2 に答える 2

0

なんらかの方法でこれをスクリプト化する必要があります。アーカイブ作成の一部としてスクリプト化することを強くお勧めします。最も簡単かもしれません

USERMOD-aware-archive() {
        git ls-files '*-USERMOD*' \
        | sed 's/$/ export-ignore/;p;s/-USERMOD//' >.git/info/attributes
        git archive "$@"
}
于 2016-02-21T16:57:52.917 に答える