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

Re: What's cooking in git.git (topics)

From
Yann Dirson <ydirson@altern.org>
Date
Dec 17, 2006, 17:35 UTC
Message-ID
<20061217173534.GA16838@nan92-1-81-57-214-146.fbx.proxad.net>
In-Reply-To
<em1vgj$bc3$1@sea.gmane.org>
On Sun, Dec 17, 2006 at 12:29:25AM +0100, Jakub Narebski wrote:
Show 10 quoted lines
> >    I am thinking about teaching fsck-objects and prune to keep
> >    revisions recorded in the reflog; we would need an end-user
> >    way to prune older reflog entries and I would appreciate
> >    somebody codes it up, but even without it, people can always
> >    use "vi" or "ed" on reflog files ;-).
> 
> I'd rather not have prune keep revisions recorded in reflog. Reflog
> keeps also amended commits, and blobs from incrementally staged
> commits. Or perhaps make it an configuration option, default to
> true for new users (or have an option to git-prune to ignore reflog).

I think that is quite near to other issues: we already have other pieces of information that we would like to sometimes have ignored and sometimes not, when running fsck-objects/prune. Namely, revisions hidden by grafts, as already discussed on this list.

An idea I had to handle that case, and which could be useful with the current problem, as well as others, like dealing with stgit's patch logging, would be to define "reachable commits" using a modular architecture. That way we would be able to select what we want fsck-object/prune to consider reachable, in objects reachable from:

- raw "parents" field of commit objects
- the latter as modified by info/grafts
- reflogs
- stgit patchlogs

The set of rules to consider could be declared in repo-config, thus stgit would be able to declare that its patchlogs should not be ignored, and people wishing to prune commits hidden by grafts in one repo could just remove the "raw-parents" rule from their repo's config.

Obviously, mentionning stgit-specific rules here immediately suggests a plugin-based architecture.

Does that make any sense ?
Previous: Junio C HamanoNext: Josef Weidendorfer
Message 4 of 28 in “What's cooking in git.git (topics)”
  1. Junio C HamanoDec 16, 2006
  2. Jakub NarebskiDec 16, 2006
  3. Junio C HamanoDec 17, 2006
  4. Yann DirsonDec 17, 2006
  5. Josef WeidendorferDec 17, 2006
  6. Brian GernhardtDec 17, 2006
  7. Shawn PearceDec 17, 2006
  8. revision: introduce ref@{N..M} syntax.Junio C Hamano, Dec 17, 2006
  9. Linus TorvaldsDec 17, 2006
  10. Junio C HamanoDec 17, 2006
  11. Andy ParkinsDec 17, 2006
  12. Junio C HamanoDec 18, 2006
  13. Andy ParkinsDec 18, 2006
  14. Shawn PearceDec 18, 2006
  15. 1/2 add for_each_reflog_ent() iteratorJunio C Hamano, Dec 18, 2006
  16. 2/2 Protect commits recorded in reflog from pruning.Junio C Hamano, Dec 18, 2006
  17. Shawn PearceDec 18, 2006
  18. Junio C HamanoDec 19, 2006
  19. 1/2 Move in_merge_bases() to commit.cJunio C Hamano, Dec 19, 2006
  20. 2/2 git reflog expireJunio C Hamano, Dec 19, 2006
  21. Shawn PearceDec 19, 2006
  22. Junio C HamanoDec 19, 2006
  23. Shawn PearceDec 19, 2006
  24. Linus TorvaldsDec 19, 2006
  25. Junio C HamanoDec 20, 2006
  26. Linus TorvaldsDec 20, 2006
  27. Shawn PearceDec 19, 2006
  28. Junio C HamanoDec 19, 2006

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.