Han-Wen Nienhuys <hanwen@xxxxxxxxxx> writes: >> All of which means FETCH_HEAD is special and we may not want to >> burden the special casing of it to newer backends. > > Can you confirm that FETCH_HEAD is the only thing that can store more > than just a symref / SHA1 ? Based on the name, and a comment in the > JGit source, I thought that MERGE_HEAD might contain more than one > SHA1 at a time. No I cannot. I do not think MERGE_HEAD is something I added with as deep a thought as I did with FETCH_HEAD. If it mimics FETCH_HEAD, then perhaps it does, but I somehow doubt it. As can be seen in builtin/merge.c::collect_parents(), we do special case FETCH_HEAD when grabbing what commit*S* to merge, but all others are read with get_merge_parent() that makes a single call to get_oid(), i.e. anything other than FETCH_HEAD cannot have more than one object recorded.