After some months, I just updated my local ikiwiki sources, and rebuilt the Hurd web pages, . I was confused, having switched to the new automatic (thanks!) --gettime mechanism, why on some pages the timestamps had changed compared to my previous use of --getctime and setting files' mtimes (using a script) according to the last Git commit. For example: community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.html old: Last edited 2008-09-11 18:11:53 UTC new: Last edited 2008-09-11 18:12:22 UTC I had a look at what git.pm is doing, and began to manually replay / investigate: $ git log --pretty=fuller --name-only --relative -- community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn commit 8f1b97bfe45b2f173e3a7d55dee226a9e289a695 Author: arnebab AuthorDate: Thu Sep 11 20:11:53 2008 +0200 Commit: arnebab CommitDate: Thu Sep 11 20:11:53 2008 +0200 Added a link to the X.org guide in this wiki. community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn commit 3ef8b7d80d80572c436c4c60c71879bc74409816 Author: arnebab AuthorDate: Thu Sep 11 19:47:08 2008 +0200 Commit: arnebab CommitDate: Thu Sep 11 19:47:08 2008 +0200 Minor update on the enty trying to get X working -> 'watch this place for updates' community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn OK, these are my old dates. $ git log --pretty=format:%ci --name-only --relative -- community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn 2008-09-11 20:11:53 +0200 community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn 2008-09-11 19:47:08 +0200 community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn $ git log --pretty=format:%ct --name-only --relative -- community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn 1221156713 community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn 1221155228 community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn $ date -d @1221156713 Thu Sep 11 18:11:53 UTC 2008 $ date -d @1221155228 Thu Sep 11 17:47:08 UTC 2008 That's all consistent. But: $ perl -le 'use Storable; my $index=Storable::retrieve("indexdb"); use Data::Dumper; print Dumper $index' [...] 'community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn' => { 'ctime' => '1221155270', 'dest' => [ 'community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.html' ], 'typedlinks' => { 'tag' => {} }, 'mtime' => 1221156742, 'depends_simple' => { 'sidebar' => 1 }, 'links' => [ 'community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x/discussion', 'Hurd/DebianXorg' ], 'state' => { [...] $ date -d @1221156742 Thu Sep 11 18:12:22 UTC 2008 $ date -d @1221155270 Thu Sep 11 17:47:50 UTC 2008 That's different, and it matches what the new ikiwiki writes into the HTML file. Back to Git again, this time without specifying the file: $ git log --pretty=format:%ct --name-only --relative [...] 1221255713 1221255655 unsorted/PortingIssues.mdwn 1221156742 [Thu Sep 11 18:12:22 UTC 2008] 1221156713 [Thu Sep 11 18:11:53 UTC 2008] community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn 1221156267 1221156235 index.mdwn 1221156122 1221156091 index.mdwn 1221155942 1221155910 index.mdwn 1221155270 [Thu Sep 11 17:47:50 UTC 2008] 1221155228 [Thu Sep 11 17:47:08 UTC 2008] community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn 1221154986 community/gsoc.mdwn community/gsoc/project_ideas.mdwn 1221147244 whatsnew.html [...] Aha! ... and some more detail: $ git log --pretty=fuller --name-only --relative [...] commit e4e89e1683012c879012522105a3471a00714613 Author: Samuel Thibault AuthorDate: Fri Sep 12 23:40:55 2008 +0200 Commit: Samuel Thibault CommitDate: Fri Sep 12 23:40:55 2008 +0200 MSG_NOSIGNAL and IPV6_PKTINFO got fixed unsorted/PortingIssues.mdwn commit c389fae98dff86527be62f895ff7272e4ab1932c Merge: 0339e3e 8f1b97b Author: GNU Hurd wiki engine AuthorDate: Thu Sep 11 18:12:22 2008 +0000 Commit: GNU Hurd wiki engine CommitDate: Thu Sep 11 18:12:22 2008 +0000 Merge branch 'master' of wiki@192.168.10.50:wiki commit 8f1b97bfe45b2f173e3a7d55dee226a9e289a695 Author: arnebab AuthorDate: Thu Sep 11 20:11:53 2008 +0200 Commit: arnebab CommitDate: Thu Sep 11 20:11:53 2008 +0200 Added a link to the X.org guide in this wiki. community/weblogs/ArneBab/2008-08-02-gnu_hurd_and_x.mdwn [...] So, merges are involved there. What (the new) ikiwiki code does, is use the timestamp when the merge was done instead of the timestamp when the commit was done. Is this intentional? Otherwise I could supply a patch. --[[tschwinge]] > In order to be nice and fast, the git backend runs git log once > and records data for all files. Rather than looking at the log for a > given file. So amoung other things, it does not follow renames. > > AFAICS, git log only shows merges modifying files if it was a conflicted > merge. As the file is then actually modified to resolve the merge > I think it makes sense to count the merge as the last modification in > that case. --[[Joey]] >> That'd be reasonable, but `git log` will also show merges that are not >> conflicting (as in my case). >>> Actually when displaying a merge, `git log --stat` only lists files that >>> were actually modified in a new way as part of the merge resolution. >>> Ie, if the merge resolution only joins together some of the parent >>> hunks, the file is not listed as having been modified. >>> >>> So, no, ikiwiki's use of git log will not show files modified in >>> non-conflicting merges. >>> --[[Joey]] >> Yet, I'm not totally disagreeing with your choice. With this `git >> log` invocation, you're not able to tell from its output whether a >> conflict was resolved or not. >> Also, it's a bit like the *should we use the **author timestamp** or >> **commit timestamp*** discussion. Your code will always use the >> latest timestamp. >> I guess I'll get my head wrapped around that, and it's fine, so this is >> [[done]]. >> --[[tschwinge]]