ce7363524c
sortGrid()'s handling of git hashes and other large hex numbers has been inconsistent, they can be detected as strings or numbers depending on what type of character they start with. This patch fixes the behaviour by using a regex to capture everything that looks like a big hex number and treat it as a string. This means when you sort by current version ascending all the version strings with big hex numbers should show up first, sorted 0-9,a-f. First we check for a string length >= 39, and then apply a regex to return an array with every char from that string that matched the regex. If the length of this array is still >= 39 we can assume we are looking at something containing a git hash. The reason why the length is defined as ">= 39" and not "40" or "39 or 40" is twofold: Firstly, 39 was chosen as a minimum to match stuff with 39 char git hashes, like the rockchip-mali package. Secondly, there is no max because we actually want to catch not just explicitly git hashes, but any verson string with big gnarly hex numbers in it. Stuff like: "1.4.2-168-ged3039cdbeeb28fc0011c3585d8f7dfb91038292" Why? Well, the idea is less about git hashes and sorting and more about grouping similarly formatted version strings. It would be impossble (or at least annoyingly complicated) and of dubious utility to get a real sequential sort out of the current version column, so the attempt here is to at the very least collect all the similarly formatted things together. This isn't perfect, but it's a (arguably) more useful sorted output than before. A demo is available here: https://sen-h.codeberg.page/pkg-stats-demos/@pages/fix-improve-git-hash-sorting.html Signed-off-by: Sen Hastings <sen@hastings.org> Signed-off-by: Arnout Vandecappelle <arnout@mind.be> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.checkpackageignore | ||
.clang-format | ||
.defconfig | ||
.editorconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.shellcheckrc | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on OFTC IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches