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

[RFC PATCH 0/4] git log -g --pretty=format: learns about reflog

From
Deskin Miller <deskinm@umich.edu>
Date
Feb 26, 2009, 04:44 UTC
Message-ID
<cover.1235622145.git.deskinm@umich.edu>

This series exposes reflog information to the pretty-printer when using --pretty=format: to git log -g and git rev-list --walk-reflogs, through similar format codes as are used currently.

Thomas Rast mentioned almost as an aside that this would be useful in 
http://article.gmane.org/gmane.comp.version-control.git/108009

and I've wanted to hack this series for a long time, even before that comment, but my first attempts broke stash horribly. Hopefully this version fares better.

I'm a little leery of using commit->util to carry the reflog info, but I didn't see a much better way, without altering the signature of pretty_print_commit to take an optional reflog parameter. The code checks that util is not being used before assigning the reflog to it, so it shouldn't break any existing uses of util of which I am unaware. I confess to having not done an appropriate amount of research into whether my use of util will actually break anything. For what it's worth this patch series doesn't break any existing tests.

One of the things I was hoping to do in the unsuccessful version was to allow the revision walker to use the reflog, but let the commit structures retain their real parents. That way, one could still obtain meaningful information from %p even when walking reflogs, which would be distinct from %rp. It is primarily with this in mind that %rp exists at all. However, as I mentioned, my attempt to change the revision walker broke existing tests, and I didn't have the wherewithal to discover how to correct it. It's possible with the current series that one could simply try to re-parse the commit, but I haven't investigated the feasibility of doing that.

I strongly suspect that there's a cleaner way to do this, but don't really know what that would be, so any comments regarding alternate approaches would be very appreciated. Also, I'm more than happy to write testcases and documentation once there is some agreement about what the preferred implementation is.

Deskin Miller (4):
  Expose reflog_info struct in header
  Add attach_reflog_info
  Attach reflog to commit prior to pretty-printing
  Teach pretty-printer new reflog format codes
 list-objects.c |    3 +++
 log-tree.c     |    3 +++
 pretty.c       |   38 ++++++++++++++++++++++++++++++++++++++
 reflog-walk.c  |   26 +++++++++++++++++++-------
 reflog-walk.h  |   12 ++++++++++++
 5 files changed, 75 insertions(+), 7 deletions(-)
Next: Deskin Miller
Message 1 of 7 in “git log -g --pretty=format: learns about reflog”
  1. 0/4 git log -g --pretty=format: learns about reflogDeskin Miller, Feb 26, 2009
  2. 1/4 Expose reflog_info struct in headerDeskin Miller, Feb 26, 2009
  3. 2/4 Add attach_reflog_infoDeskin Miller, Feb 26, 2009
  4. 3/4 Attach reflog to commit prior to pretty-printingDeskin Miller, Feb 26, 2009
  5. 4/4 Teach pretty-printer new reflog format codesDeskin Miller, Feb 26, 2009
  6. Johannes SchindelinFeb 26, 2009
  7. Jeff KingFeb 26, 2009

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.