Hello,
Trying to solve a problem with object/info/alternates and http (a rather problematic combination) I noticed the following code in sha1_file.c:336 in function link_alt_odb_entries. (current master -- v1.5.3-rc4-41-g7efeb8f):
if ((*last != '/') && depth) {
error("%s: ignoring relative alternate object store %s",
relative_base, last);
} else {
link_alt_odb_entry(last, cp - last,
relative_base, depth);
}The last is (if I understood the code correctly) begining of line, cp is end of that line and depth is depth of recursion in resolving the alternates. Now unless I read the code completely wrong, it means, that when git reads a repository, it resolves relative paths in it's objects/info/alternates, but if that contains further alternates, it would ignore relative alternate paths there -- and therefore not find objects needed from there.
And my question is, is there any good reason to reject relative paths in alternates of an alternate? From what I see the recursive call to link_alt_odb_entries (via link_alt_odb_entry and read_info_alternates) has all the information it needs to resolve such paths.
Thanks,
Jan
-- Jan 'Bulb' Hudec <bulb@ucw.cz>