On 14/04/18 14:11, Johannes Schindelin wrote: > Hi, > > On Sat, 14 Apr 2018, Phillip Wood wrote: > >> On 13/04/18 17:52, Johannes Sixt wrote: >>> >>> I just noticed that all commits in a 70-commit branch have the same >>> committer timestamp. This is very unusual on Windows, where rebase -i of >>> such a long branch takes more than one second (but not more than 3 or >>> so thanks to the builtin nature of the command!). >>> >>> And, in fact, if you mark some commits with 'reword' to delay the quick >>> processing of the patches, then the reworded commits have later time >>> stamps, but subsequent not reworded commits receive the earlier time >>> stamp. This is clearly not intended. >> >> Oh dear, I think this is probably due to my series making rebase commit >> in-process when the commit message isn't being edited. I didn't realize >> that git cached the commit date rather than using the current time when >> calling commit_tree_extended(). I'll take a look at it next week. > > Thanks. > > However, a quick lock at `git log @{u}.. --format=%ct` in my > `sequencer-shears` branch thicket (which I rebase frequently on top of > upstream's `master` using the last known-good `rebase-merges` sub-branch) > shows that the commits have different-enough commit timestamps. (It is > satisfying to see that multiple commits were made during the same second, > of course.) > > So while I cannot find anything in the code that disagrees with Hannes' > assessment, it looks on the surface as if I did not encounter the bug > here. > > Curious. That's strange (I'd have expected the picks after recreated merges to have the earlier timestamps than the merge), if I do 'git rebase -i --force-rebase --exec="sleep 2" @~5' then all the new commits have the same timestamp. > FWIW I agree with Hannes' patch. > >> I think 'git am' probably gives all patches the same commit time as well >> if the commit date is cached though it wont suffer from the time-travel >> problem. > > I thought that `git am` was the subject of such a complaint recently, but > I thought that had been resolved? Apparently I misremember... I had a quick look and couldn't see anything about that, it looks to me like it just calls commit_tree() and only does anything to change the default commit date if '--committer-date-is-author-date' was given. Best Wishes Phillip > Ciao, > Dscho >