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

Re: [PATCHv2 5/6] gitweb: last-modified time should be commiter, not author

From
Jakub Narebski <jnareb@gmail.com>
Date
Feb 12, 2009, 09:07 UTC
Message-ID
<200902121007.29867.jnareb@gmail.com>
In-Reply-To
<cb7bb73a0902110154h325ed146h4d1161d4a8dcb1ca@mail.gmail.com>
On Wed, 11 Feb 2009, Giuseppe Bilotta wrote:
Show 33 quoted lines
> On Wed, Feb 11, 2009 at 10:18 AM, Jakub Narebski <jnareb@gmail.com> wrote:
>> On Wed, 11 Feb 2009, Giuseppe Bilotta wrote:
>>> On Wed, Feb 11, 2009 at 4:10 AM, Deskin Miller <deskinm@gmail.com> wrote:
>>>>
>>>> git reflog?
>>>>
>>>> Seems like one could find the oldest time the commit appears in the
>>>> reflog, for the branch one is interested in.  You can use the commit
>>>> time to limit the search through the reflog, but there would be clock
>>>> skew concerns.
>>>
>>> Bingo! Thanks a lot
>>>
>>> oblomov@rbot ~ $ GIT_DIR=/var/git/rbot.git/ git reflog show
>>> --since="two days ago" master | cat
>>> 7324b32... master@{0}: push
>>> e2dc08d... master@{1}: push
>>> oblomov@rbot ~ $ GIT_DIR=/var/git/rbot.git/ git reflog show
>>> --since="yesterday" master | cat
>>> oblomov@rbot ~ $
>>>
>>> I'll try to work it in the next review for this patchset.
>>
>> Assuming that you have reflog enabled (yes, it is default now)...
>> So you would have to provide fallback in the case there is no reflog.
>>
>> BTW. "git reflog" is porcelain; it would be better to parse reflog
>> directly, I think.
> 
> Does disabling reflog remove old reflogs? IOW, can I check if reflog
> is enabled just by opening the reflog file and assuming reflog isn't
> enabled if it's not there? Falling back to the commit date would still
> work decently.

You can disable reflog by setting core.logAllRefUpdates to false... which of course do not remove reflog. But checking for this config variable in gitweb shouldn't be too hard, although you would need to somehow change assumption that we are interested only in ^gitweb\. section of config.

There is other side of this issue: reflog is expired, so you can have empty reflog if branch was updated long time ago.

>
> Since we're only interested in the last reflog date, what we can do is
> to read the last line and get the unix time which is held two places
> before the tab separating the metadata from the log message. Correct?

Almost correct. Some tools (old StGit for example) didn't provide reflog message, and with empty message they forgot to append TAB separator. So you would have to provide for legacy

  <old sha-1> <new-sha-1> <committer> <timestamp> <timezone>
instead of correct (for empty reflog message)
  <old sha-1> <new-sha-1> <committer> <timestamp> <timezone> TAB

P.S. It is a pity that due to packed refs stat-ing branch tip file $GIT_DIR/refs/heads/<branch> is not enough...

-- 
Jakub Narebski
Poland
Previous: Deskin MillerNext: Giuseppe Bilotta
Message 19 of 37 in “[PATCHv2 0/6] gitweb: feed metadata enhancements”
  1. Giuseppe BilottaJan 26, 2009
  2. 1/6 gitweb: channel image in rss feedGiuseppe Bilotta, Jan 26, 2009
  3. 2/6 gitweb: feed generator metadataGiuseppe Bilotta, Jan 26, 2009
  4. 3/6 gitweb: rss feed managingEditorGiuseppe Bilotta, Jan 26, 2009
  5. 4/6 gitweb: rss channel dateGiuseppe Bilotta, Jan 26, 2009
  6. 5/6 gitweb: last-modified time should be commiter, not authorGiuseppe Bilotta, Jan 26, 2009
  7. 6/6 gitweb: check if-modified-since for feedsGiuseppe Bilotta, Jan 26, 2009
  8. Jakub NarebskiFeb 5, 2009
  9. Giuseppe BilottaFeb 6, 2009
  10. Jakub NarebskiFeb 4, 2009
  11. Giuseppe BilottaFeb 6, 2009
  12. Jakub NarebskiFeb 6, 2009
  13. Giuseppe BilottaFeb 6, 2009
  14. Deskin MillerFeb 11, 2009
  15. Giuseppe BilottaFeb 11, 2009
  16. Jakub NarebskiFeb 11, 2009
  17. Giuseppe BilottaFeb 11, 2009
  18. Deskin MillerFeb 12, 2009
  19. Jakub NarebskiFeb 12, 2009
  20. Giuseppe BilottaFeb 12, 2009
  21. Jakub NarebskiFeb 12, 2009
  22. Giuseppe BilottaFeb 12, 2009
  23. Jakub NarebskiFeb 4, 2009
  24. Giuseppe BilottaFeb 6, 2009
  25. Jakub NarebskiFeb 4, 2009
  26. Giuseppe BilottaFeb 6, 2009
  27. Jakub NarebskiFeb 4, 2009
  28. Giuseppe BilottaFeb 6, 2009
  29. Jakub NarebskiFeb 6, 2009
  30. Jakub NarebskiFeb 4, 2009
  31. Giuseppe BilottaFeb 6, 2009
  32. Junio C HamanoJan 28, 2009
  33. Jakub NarebskiJan 28, 2009
  34. Giuseppe BilottaJan 28, 2009
  35. Junio C HamanoJan 28, 2009
  36. Jakub NarebskiFeb 6, 2009
  37. Junio C HamanoFeb 7, 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.