3

git notesを使用して、いくつかの(小さな)データのブロブを格納しようとしています。ほとんど動作していますが、データを別のマシンにフェッチしようとすると問題が発生します。

git hash-object返されたハッシュを使用してメモに保存しています。

git hash-object -w timestamp.signed.tsr | git notes --ref=timestamps add --file -

Note to Selfで概説されている方法を使用して、ハッシュを含むノートをプッシュおよびフェッチできます。

git push origin refs/notes/timestamps
git fetch origin refs/notes/*:refs/notes/*

ただし、blobオブジェクトをそれに合わせる方法がわかりません。私のblobオブジェクトが元の場所にプッシュされていないことはかなり確信しています。私がチェックしている方法は0dd470d2fc5556de62d813537fd483aede2f6b35、blobオブジェクトのハッシュであるはずののメモをプッシュした後、裸のリポジトリがあるマシンに行き、を探しますobjects/0d/d470d2fc5556de62d813537fd483aede2f6b35。そこにないので、プッシュされることはないと思います。

gitがblobオブジェクトがノートによって参照されていることを認識できるようにするために、私が見落としている単純なものはありますか?データをメモに直接保存する方がよいでしょうか?データをbase64でエンコードし、メモに直接保存する方がよいでしょうか。

ヒントをいただければ幸いです。

4

1 に答える 1

3

メモには任意のデータを含めることができますが、他のオブジェクトへの参照を含める必要はなく、また含めることも期待されていません。そのため、gitはメモの内容を参照として解釈しません。表示したコマンドはハッシュされたオブジェクトへの参照を作成しないため、そのオブジェクトは別のリポジトリにプッシュされません。実際、オブジェクトが十分に古くなると、オブジェクトはガベージコレクションの対象になります。

于 2012-12-03T15:31:15.800 に答える