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

Re: Branch Name Case Sensitivity

From
Duy Nguyen <pclouds@gmail.com>
Date
Feb 28, 2014, 14:31 UTC
Message-ID
<CACsJy8B7fFBJ5ZbJDjGj4G6mx1byitC7BU4oJ3C0zq7cuv4fvA@mail.gmail.com>
In-Reply-To
<53105343.2040703@alum.mit.edu>
On Fri, Feb 28, 2014 at 4:13 PM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
Show 20 quoted lines
> On 02/28/2014 12:38 AM, Lee Hopkins wrote:
>> [...] Based Michael Haggerty's response, it seems that always
>> using loose refs would be a better workaround.
>
> No, I answered the question "what would be the disadvantages of using
> only packed refs?".  Now I will answer the question "what would be the
> disadvantages of using only loose refs?":
>
> 1. Efficiency.  Any time all of the references have to be read, loose
> refs are far slower than packed refs.
>
> 2. Disk space and inode usage: loose refs consume one inode and one disk
> sector (typically 4k) each, whereas packed refs consume only one inode
> in total, and many packed refs can fit into each disk sector.
>
> After all, there is a reason that we have both packed refs and loose
> refs.  The basic idea is to use packed refs for the bulk of references,
> especially "cold" references like tags that only change infrequently,
> but to store "hot" references as loose refs so that they can be modified
> cheaply.

Could we have a staging place for new refs in between? Case sensitivity is just another limitation we hit because we rely on filesystem. We already have problems with having both refs foo and foo/bar at the same time. Not all repos are super busy and need the top efficiencies of loose refs.

And about rewriting packed-refs every time, I don't think that's a big problem for "normal" repos. linux-2.6 index file is 4MB(*) and it's rewritten on nearly every worktree-related operation and nobody complains (out loud anyway). Assuming an average ref takes 100 bytes, that's about 41k refs.

(*) it's 3MB with index-v4 but I don't think v4 is popular
-- 
Duy
Previous: Michael HaggertyNext: Michael Haggerty
Message 24 of 27 in “Branch Name Case Sensitivity”
  1. Lee HopkinsFeb 26, 2014
  2. Junio C HamanoFeb 27, 2014
  3. Torsten BögershausenFeb 27, 2014
  4. Lee HopkinsFeb 27, 2014
  5. Michael HaggertyFeb 27, 2014
  6. Karsten BleesFeb 27, 2014
  7. Lee HopkinsFeb 27, 2014
  8. Johannes SixtFeb 28, 2014
  9. Karsten BleesFeb 28, 2014
  10. Lee HopkinsFeb 28, 2014
  11. Junio C HamanoFeb 28, 2014
  12. Duy NguyenFeb 28, 2014
  13. Junio C HamanoFeb 28, 2014
  14. Lee HopkinsMar 1, 2014
  15. Torsten BögershausenMar 1, 2014
  16. Lee HopkinsMar 1, 2014
  17. Karsten BleesMar 3, 2014
  18. Lee HopkinsMar 3, 2014
  19. Junio C HamanoMar 3, 2014
  20. Karsten BleesMar 4, 2014
  21. Torsten BögershausenMar 4, 2014
  22. Lee HopkinsMar 5, 2014
  23. Michael HaggertyFeb 28, 2014
  24. Duy NguyenFeb 28, 2014
  25. Michael HaggertyFeb 28, 2014
  26. Stephen LeakeFeb 28, 2014
  27. Michael HaggertyFeb 28, 2014

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.