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

Re: brtfs COW links and git

From
Larry D'Anna <larry@elder-gods.org>
Date
Mar 22, 2011, 02:44 UTC
Message-ID
<20110322024421.GA15134@cthulhu>
In-Reply-To
<20110321120051.GG16334@sigill.intra.peff.net>
* Jeff King (peff@peff.net) [110321 08:00]:
> I'm not exactly clear on what you want to implement.
Neither was I, that's why I sent the vague email :-)
I think I have a better understanding now of what would need to be done:
* reading unadorned blobs, as a last resort if the object isn't found elsewhere.
  use reflink (if available) to copy an unadorned blob into the working directory 
* writing unadorned blobs, according to size limit / attribute.
  this also means computing the sha1 for the blob without reading
  the entire thing into memory all at once.
* leaving unadorned blobs alone in gc, unless explicitly told not to
* supporting the easy cases of binary diffs for git-upload-pack.  it shouldn't 
  have to send an entire copy of a huge file if only a little bit of the file 
  changed.   This could use fiemap, or maybe bup's rolling checksum, or maybe 
  either, depending on what's available.
* support for applying those binary diffs directly to the on-disk reflink.
  this could probably just mmap the file and call patch-delta.

I think these features would make some, but not all of the big file use cases much more usable. What do you think?

Previous: Jeff KingNext: Jeff King
Message 3 of 4 in “brtfs COW links and git”
  1. Larry D'AnnaMar 19, 2011
  2. Jeff KingMar 21, 2011
  3. Larry D'AnnaMar 22, 2011
  4. Jeff KingMar 22, 2011

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.