public void writePackedRefs()
{
bool peeled = false;
foreach (Ref r in refs)
{
if (r.StorageFormat != Ref.Storage.Packed)
continue;
if (r.PeeledObjectId != null)
peeled = true;
}
StringBuilder w = new StringBuilder();
if (peeled)
{
w.Append("# pack-refs with:");
if (peeled)
w.Append(" peeled");
w.Append('\n');
}
char[] tmp = new char[Constants.OBJECT_ID_STRING_LENGTH];
foreach (Ref r in refs)
{
if (r.StorageFormat != Ref.Storage.Packed)
continue;
r.ObjectId.CopyTo(tmp, w);
w.Append(' ');
w.Append(r.Name);
w.Append('\n');
if (r.PeeledObjectId != null)
{
w.Append('^');
r.PeeledObjectId.CopyTo(tmp, w);
w.Append('\n');
}
}
writeFile(Constants.PACKED_REFS, Constants.encode(w.ToString()));
}