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

Re: auto-packing on kernel.org? please?

From
CMCatalin Marinas <catalin.marinas@gmail.com>
Date
Nov 22, 2005, 14:13 UTC
Message-ID
<b0943d9e0511220613h5978a600l@mail.gmail.com>
In-Reply-To
<Pine.LNX.4.64.0511212134330.13959@g5.osdl.org>
On 22/11/05, Linus Torvalds <torvalds@osdl.org> wrote:
Show 10 quoted lines
> On Tue, 22 Nov 2005, Chuck Lever wrote:
> > there are some things repacking does that breaks StGIT, though.
> >
> > git repack -d
> >
> > seems to remove old commits that StGIT was still depending on.
>
> If that is true, then "git-fsck-cache" probably also reports errors on a
> StGIT repository. No? Basically, it implies that the tool doesn't know how
> to find all the "heads".

Indeed, 'git repack -d' or 'git prune' might remove the patches which are not applied since there is no link to them from .git/refs/.

> Could somebody (Catalin?) perhaps tell how tools like git-fsck-cache and
> git-repack could figure out which objects are still in use by stgit?

They don't figure this out at the moment. I initially thought about implementing these commands in StGIT so that they would pass the proper references.

Show 6 quoted lines
> Preferably with some generic mechanism that _other_ projects (not just
> stgit) might want to use?
>
> The preferred way would be to just list the references somewhere under
> .git/refs/stgit, in which case fsck and repack should pick them up
> automatically (so clearly stgit doesn't do that right now ;).

I thought about adding .git/refs/patches/<branch>/* files corresponding to the every StGIT patch. Are the above git commands looking at all depths in the .git/refs/ directory?

Show 10 quoted lines
> > git repack -a -n
> >
> > seems to work fine with StGIT,
>
> Well, it "works", but not "fine". Since it doesn't know about the stgit
> objects, it won't ever pack them.
>
> But maybe that's what stgit wants (since they are "temporary"), but it
> does mean that if you see a big advantage from packing, you might be
> losing some of it.

The 'git repack -a' command would include the applied patches in the newly created pack but leave out the unapplied ones. It would be even better to leave all of them out since the StGIT patches are frequently changed but an independent mechanism for this would complicate GIT - 'git repack' shouldn't pack any of the objects found in .git/refs/patches/, even if they are reachable via .git/refs/heads/* (and maybe call the patches directory something like .git/refs/unpackable or volatile).

-- Catalin

Previous: Linus TorvaldsNext: Linus Torvalds
Message 9 of 33 in “auto-packing on kernel.org? please?”
  1. Linus TorvaldsOct 13, 2005
  2. Carl BaldwinNov 21, 2005
  3. Linus TorvaldsNov 21, 2005
  4. Junio C HamanoNov 21, 2005
  5. Linus TorvaldsNov 21, 2005
  6. Junio C HamanoNov 21, 2005
  7. Chuck LeverNov 22, 2005
  8. Linus TorvaldsNov 22, 2005
  9. Catalin MarinasNov 22, 2005
  10. Linus TorvaldsNov 22, 2005
  11. Chuck LeverNov 22, 2005
  12. Catalin MarinasNov 23, 2005
  13. Carl BaldwinNov 22, 2005
  14. Linus TorvaldsNov 22, 2005
  15. Linus TorvaldsOct 13, 2005
  16. Dirk BehmeOct 16, 2005
  17. Daniel BarkalowOct 16, 2005
  18. Nick HengeveldOct 16, 2005
  19. Brian GerstOct 16, 2005
  20. Junio C HamanoOct 16, 2005
  21. Nick HengeveldOct 16, 2005
  22. Junio C HamanoOct 16, 2005
  23. Nick HengeveldOct 17, 2005
  24. Junio C HamanoOct 17, 2005
  25. Nick HengeveldOct 17, 2005
  26. Junio C HamanoOct 17, 2005
  27. Daniel BarkalowOct 17, 2005
  28. Linus TorvaldsOct 17, 2005
  29. Nick HengeveldOct 17, 2005
  30. Daniel BarkalowOct 17, 2005
  31. Johannes SchindelinOct 16, 2005
  32. Brian GerstOct 16, 2005
  33. Catalin MarinasNov 23, 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.