# Re: \[PATCH 8/8\] builtin/repack.c: pass \`--refs-snapshot\` when writing bitmaps

- From: Ævar Arnfjörð Bjarmason \<hidden\>
- Date: 2021-09-11 11:22:25 
- List: git
- Page: https://ratatoskr.run/git/2021/09/7902119
- Thread: https://ratatoskr.run/git/2021/09/7902077/t.md

```text

On Sat, Sep 11 2021, Ævar Arnfjörð Bjarmason wrote:

> On Fri, Sep 10 2021, Taylor Blau wrote:
>
>> +struct midx_snapshot_ref_data {
>> +	struct tempfile *f;
>
> Style/readability: Spare more than one byte for a variable name in a
> struct, maybe file, or tmpfile?
>
>> +	fprintf(data->f->fp, "%s%s\n", data->preferred ? "+" : "",
>> +		oid_to_hex(oid));
>
> Just an idea: Maybe the file could be lines of "+\tOID\n" instead of
> "+OID\n"? Lends itself more naturally to extension, use with the likes
> of string_list_split() etc.

Actually, even better a format like:

    "OID[\t+]\n"

Or

    "OID[\tpreferred=1]\n"

Then you can just use the strbuf API to eat the lines, and only parse
any optional \t-delimited "flags" if the length of the line you get
doesn't match the hash size length.

I don't think it matters for speed or whatever, just ease of parsing &
working with this new format.

The "+" v.s. "preferred=1" suggestion is just to make it future-proof
for comma-delimited key-value options, which we already use in the
protocol etc., so it's easy to parse, but I don't know if we're ever
likely to add a new flag here (and even if we are, we can use the next
"\t" positional...
```
