On Tue, Dec 3, 2019 at 12:29 AM Lou, Pengfei (NSB - CN/Hangzhou) <pengfei.lou@xxxxxxxxxxxxxxx> wrote: > > Hello community > One problem I found recently within my working, please check my detail below. > > I tried to run my script (check the attached file 'problem.sh') to build one git repository , it can be successful, but the command "git log -raw -1 ${revision}^ ${revision}" on that repo would generate some unexpected result, please check the result below > > [pelou@hzling29 try_des]$ git --version > git version 2.6.2 > > [pelou@hzling29 try_des]$ git log --raw -1 164304f48726d31336e2e130a90e42b7f1c480f8 > commit 164304f48726d31336e2e130a90e42b7f1c480f8 > Author: pelou <mailto:pengfei.lou@xxxxxxxxxxxxxxx> > Date: Tue Dec 3 14:54:33 2019 +0800 > > 3 > > :100644 100644 9a7456b... 8148ef7... M lpf > [pelou@hzling29 try_des]$ git log --raw -1 164304f48726d31336e2e130a90e42b7f1c480f8^ 164304f48726d31336e2e130a90e42b7f1c480f8 > commit dd1a95338ffd471e5b270a487b585bbfcf9926a5 > Author: pelou <mailto:pengfei.lou@xxxxxxxxxxxxxxx> > Date: Tue Dec 3 14:54:33 2019 +0800 > > 2 > > :100644 100644 d474e1b... 9a7456b... M lpf > > Next step I changed my script(check the attached file good.sh) and only add some delays after "git push", everything is normal, check it below > [pelou@hzling29 try_des]$ git log --raw -1 2027dc54da1896cf1dfa301c3444b1690d6cb1d8 > commit 2027dc54da1896cf1dfa301c3444b1690d6cb1d8 > Author: pelou <mailto:pengfei.lou@xxxxxxxxxxxxxxx> > Date: Tue Dec 3 15:00:45 2019 +0800 > > 3 > > :100644 100644 9a7456b... 8148ef7... M lpf > [pelou@hzling29 try_des]$ git log --raw -1 2027dc54da1896cf1dfa301c3444b1690d6cb1d8^ 2027dc54da1896cf1dfa301c3444b1690d6cb1d8 > commit 2027dc54da1896cf1dfa301c3444b1690d6cb1d8 > Author: pelou <mailto:pengfei.lou@xxxxxxxxxxxxxxx> > Date: Tue Dec 3 15:00:45 2019 +0800 > > 3 > > :100644 100644 9a7456b... 8148ef7... M lpf > > So please help me fix it. Please let me know if I was wrong or miss some thing By default, git log sorts commits by their timestamps and outputs them in reverse chronological order (as stated in the git log documentation[1]), not the order you requested the commits in. Without the delays, the commits can happen so fast you end up with identical timestamps on each commit. I'm not sure git log has a tie-breaker in such a case (it may just end up being input order). If you want the commits to be output in the order you ask for them in, you might try something like "git log --raw --no-walk=unsorted sha^ sha". This will output exactly the commits you ask for (so "sha"'s first parent and "sha") in the same order you requested them in. Hope this helps, Bryan Turner [1] https://git-scm.com/docs/git-log#_commit_ordering > > Br, Hercules