'git rev-list' commit ordering issue

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

 



Hello,

I've come across an issue with `git rev-list --no-walk=sorted` commit
ordering when
two commits have the exact same commit date. In that case, `git rev-list` will
leave the two commits in the original order, preventing automated
cherry-picking.

To reproduce starting from the attached repo archive created with `git
bugreport`:
git rev-list --reverse HEAD | git rev-list --no-walk=sorted --stdin

You'll see that the order of the two middle commits is incorrect and
does not match
the order returned by `git rev-list HEAD`

Since both commits have the same commit date, `git rev-list` should use another
criterion to do the sorting - namely, use the parent/child topology.

If there are better ways to sort such a list, let me know. This is a much
simplified test case. In our real-world application, we start from a subset
of commits that we want to cherry-pick from a branch, for the purpose
of creating
a customer-specific patch build. For the automated cherry-pick to work, we need
to have these commits sorted in topological order. I do not see an option to
`git rev-list` that only sorts the commits in stdin topologically - the
`--no-walk` option only does date-based sorting.

Below is the system info gathered by `git bugreport`.

Take care,

Clement


[System Info]
git version:
git version 2.48.1
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
libcurl: 7.87.0
OpenSSL: OpenSSL 1.0.1e-fips 11 Feb 2013
zlib: 1.2.3
uname: Linux 4.18.0-553.33.1.el8_10.x86_64 #1 SMP Thu Dec 19 14:28:01
UTC 2024 x86_64
compiler info: gnuc: 6.2
libc info: glibc: 2.28
$SHELL (typically, interactive shell): /bin/zsh


[Enabled Hooks]

<<attachment: git-diagnostics-2025-02-25-1422.zip>>


[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