2010-11-22 18 views
0

私のgitリポジトリのサブディレクトリをエクスポートするときに、コミットの完全なハッシュを与えられたファイル。その理由は、このコード(リポジトリのサブディレクトリが大きすぎて便利に定期的にエクスポートすることができます)を私の顧客に出荷してから(git環境の外で)ビルドしてログから伝えることができるようにするためですデバッグを支援するために、どのバージョンのコードがそれを生成したかを示します。それはexport-subst属性で.gitattributesにファイルを追加することで、及びgit archiveが実行されたときに持って%Hトークンを交換持つべきであるかのようにリポジトリのサブディレクトリをエクスポートするときにexport-subst git属性を使用する

ソリューションが表示されます。しかし、私はこの行動を見ていないよ。

私は、Pro Gitの本のページを参照として使用していましたが(here参照)、リポジトリのルートではなくサブディレクトリで使用するように修正しようとしています。

私がエクスポートしようとしているディレクトリはiDeviceです。私はhash_testというフォルダの下にファイルLast commit date: $Format:%cd$を含むファイルを作成しました。

git archive --format=tar HEAD:iDevice/ | gzip > test.tar.gzを実行すると、ファイルは変更されません。 git archive --format=tar HEAD | gzip > test.tar.gzを実行すると、ファイルに変更されます。

gitディレクトリのルートと。ルートとサブディレクトリの両方に.gitattributesファイルを保存しようとしました。私はiDevice/hash_testhash_testの両方のファイルを.gitattributesファイルに参照しようとしました(kerneltrap.orgのリストにあるバグと似たようなものだと思っていましたが、--prefix =アーカイブコマンドを混乱させる -/mailarchive/git/2008/4/8/1378004私は適切にリンクしていますが、もっとリンクを張るという評判はありません...)。しかし、これはどれも助けにはなりませんでした。

ご意見をお寄せください。

答えて

3

git-archiveの属性は、アーカイブされているツリーから取得されます。

  • git archive ... HEAD:iDeviceの属性はのiDeviceになければならない、または、彼らはおそらく見ることができないこれは、次のことを意味します。 (私はこれがサポートされていると仮定し、私はそれを試したことがありません。)

  • あなたは犯しあなたgitattributesファイルを持っている必要があります。 --worktree-attributesオプションをgit-archiveに使用しない限り、作業台にあるものは無関係です。

そしてこのすべてをバイパスすることが提案は:git archive ... HEAD iDevice、ないgit archive HEAD:iDevice使用します。コマンドは<tree-ish> <path>引数をサポートします。ツリーオブジェクトを直接指定する必要はありません。

+1

私はすでにiDeviceフォルダに自分の.gitattributesを持っていましたが、私はすべてそれをコミットしましたが、喜びはありませんでした。 あなたの提案は「」で解決されました。ありがとう! – Rowan

関連する問題