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

Re: [RFD] server-info to help clients

From
Junio C Hamano <junkio@cox.net>
Date
Jul 20, 2005, 01:53 UTC
Message-ID
<7vd5pegs3z.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.62.0507191728380.18963@qynat.qvtvafvgr.pbz>

The management of multiple packs and strategy of deciding when to create the next incremental (be it throw-away or permanent) is something I am not particularly interested in at this moment, and as you correctly pointed out, the "single throw-away pack" is an example of _bad_ strategy [*1*]. I am more interested in designing a concise way to express what the server side has (after applying such packing/repacking strategy) to help clients coming over a dumb transport.

One thing that I forgot to mention is that there is another per-repository information "$repo/info/revinfo". This lists all the commit ancestry reachable from "$repo/refs", and is needed for clients to find out the closest commit from the very tip of branches, which are likely not packed yet, that appears as a head in "$repo/objects/info/pack" and go from there.

[Footnote]

*1* As I said, I am not interested in thinking about this at this moment, but I suspect a scheme that employs the base pack, permanent incrementals, and N new throw-aways every day for the N-th day of the month may work reasonably well.

On the N-th day of the month, you create incrementals relative to what existed on the N-1th, N-2th, ..., 1st of the month. At the end of the day, create N+1 new throw-aways for the N+1th day of the month (you can garbage collect older days' throw-away incrementals whenever you like). At the end of the month, you mark the throw-away incremental that is relative to the beginning of the month as the latest permanent incremental.

Bootstrappers can slurp base, permanent incremental and the throwaway for today that is relative to the last permanent incremental. Updaters can pick the one relative to the day they updated last time.

Previous: David Lang
Message 12 of 12 in “git-revover-tags-script”
  1. git-revover-tags-scriptEric W. Biederman, Jul 16, 2005
  2. Junio C HamanoJul 17, 2005
  3. Eric W. BiedermanJul 17, 2005
  4. Junio C HamanoJul 17, 2005
  5. Eric W. BiedermanJul 18, 2005
  6. Junio C HamanoJul 18, 2005
  7. Eric W. BiedermanJul 18, 2005
  8. Junio C HamanoJul 18, 2005
  9. Eric W. BiedermanJul 18, 2005
  10. [RFD] server-info to help clientsJunio C Hamano, Jul 20, 2005
  11. David LangJul 20, 2005
  12. Junio C HamanoJul 20, 2005

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.