Hacker News new | ask | show | jobs
by Aissen 1358 days ago
Bash nowadays is developed in git, which is nice. Good luck finding incremental changes, though:

https://git.savannah.gnu.org/cgit/bash.git/commit/?id=74091d...

https://git.savannah.gnu.org/cgit/bash.git/commit/?id=8868ed...

https://git.savannah.gnu.org/cgit/bash.git/commit/?id=d233b4...

(to be fair there are a few smaller patchsets beside these huge dumps; and it does have a good documentation and changelog file). This alone was enough to push me towards fish for my interactive shell needs.

2 comments

I quickly found the details on a branch called devel.

It looks like Ramey is doing rebasing merges with squashing to get changes into the trunk.

Moreover, there is an intermediate 5.2-test branch which doesn't have the details commits, but is less squashed; it has the 5.2 intermediate pre-releases that were put out for testing.

So there is a method to the madness, though I can't personally agree with anything except all changes on one straight line that you can git bisect with your eyes closed. All those items like 5.2 prerelease 3 can just be tags on one trunk.

Here is a problem: the devel branch has no tags indicating where the various intermediate releases were cut. Likewise, the squash merge commits do not list, in the commit message, the range of commits that were included.

Wow, thanks for the pointer to the devel branch. I retract some of my criticism, this seems to be done fairly properly (except in 2021 when I looked where the commits where basically time dumps). I don't get the need to squash though.
I'm going to open an outright bug on Savannah for this. It's a process problem in the Bash project that I can't go into the detailed devel branch where the acctual commits are, and tell which are the commits that have gone into specific test baselines and releases.

https://savannah.gnu.org/support/index.php?110734