git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Relative alternates question

From
JHJan Hudec <bulb@ucw.cz>
Date
Aug 10, 2007, 16:45 UTC
Message-ID
<20070810164556.GB3442@efreet.light.src>
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>
Next: Junio C Hamano
Message 1 of 2 in “Relative alternates question”
  1. Jan HudecAug 10, 2007
  2. Junio C HamanoAug 10, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.