Re: git log date filter bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 02.01.25 um 16:15 schrieb Sarah Gastner:
> I encountered some weird behaviour that I think is a bug. I'll paste
> the bug report below and also attach it to this email.
The following command shows the offending commit along with its parent,
child and grandchild; the format shows commit time, author time, commit
hash and parent commit hash:

$ git log --format="%ci %ai %h %p" --max-count=4 82eb24156a1
2023-03-08 15:01:06 -0800 2023-03-08 15:01:06 -0800 82eb24156a1 4346c5e5e29
2023-03-07 15:51:09 -0800 2023-03-07 15:51:09 -0800 4346c5e5e29 501976cc34e
2023-03-13 14:40:47 -0700 2023-03-13 14:40:47 -0700 501976cc34e feb18b3f5f9
2023-03-07 15:49:19 -0800 2023-03-07 15:49:19 -0800 feb18b3f5f9 54283a1d383

So 501976cc34e was ostensibly committed six days after its child commit
4346c5e5e29, which would require time travel capabilities.  Or, more
likely, someone edited the commit history, but did not update the
commit times, possibly with git rebase --committer-date-is-author-date.

git log assumes that commit dates are chronological and stops
traversing the history if it encounters a commit with a timestamp
older than the time given with --after.  That is a reasonable
assumption usually.

Not sure what git log could do better here.  It could add some slack to
the specified time and look deeper than actually asked for to try and
catch such time travel artifacts, but how much exactly?  History can be
arbitrarily deep and history editing can move commits arbitrarily far.

Should it go all the way down to the root commits to be safe?  That's
expensive.  Should out-of-order commits be put on some kind of special
list for special treatment?  Sounds complicated.  The current deal of:
"You want to mess up commit dates, then tell your collaborators to add
some slack to commit date options" is not ideal, but fair in a  way.

Perhaps someone has a better idea?

René






[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux