No kidding!
GP's point stands though, how are you supposed to get there from the submission?
I assume if you subscribed to the mailing list yourself the patch would be attached, but afaict TFA doesn't even show that.
I don't really understand how people can work like this, not anti-email, or everything must be GitHub, or anything - but it can still be a lot more modern and featureful than this can't it? I don't really understand why it isn't.
That's the way everybody used to work?
I can't recall if there were local x11 visualizing tools like gitk is today. (Google says tkcvs) I remember there were some graphical diff programs, you could set an environment variable and make the "cvs diff" command show something nicer looking.
Recall that git was also designed to work over mailing lists. git format-patch, git apply, etc.
I've used cvs a bit recently.
It's amazing how poor the performance is on large repositories, even on modern machines.
I can't figure out how I put up with this 20 years ago.
Now we're so completely absorbed by the screen for so long, we get irritated by any perceived delay.
Learn the basics of C and Perl for automation, Perl can do tons of *unix stuff (awk/sed... but better).
Mark Burguess has books on Perl/C (ANSI C and GNU C) and the basics of C++ with systems' programming. I know today Golang would be more apt but if you know how the things work under the shiny stuff, you will apply most of the knowledge from Unix systems' programming to Go in a breeze.
Once you begin to automate scripting, testing and repetitive stuff, you will spend less time with computers.
This said, you can and should slow it down if you feel overwhelmed, generally speaking. Use reminders to break every 45 minutes or so, then stand up and walk around. Take longer lunches. Generally speaking, lower expectations about your productivity - which, in itself, should not be a life goal. The cult of productivity helps capital, not people. We should be kinder to ourselves.
I guess that's why the errata page has source patches. It's also great that they have syspatch now for fast binary patches
No. In the bad old days, for many people version control software wasn't sufficiently better (and in some respects much worse) than just not using any. So many people didn't use any.
> Recall that git was also designed to work over mailing lists. git format-patch, git apply, etc.
Right, and when you do web things with that same git in 2024, it looks and works like it's 2024.
You could use an old git server/file browser UI, or the built-in gitweb[0] for example, but you don't, you use something more modern & featureful, working better on mobile, looking prettier, etc. Even Linux (with its history intertwined with git) uses Github[1] as its mirror, not gitweb or anything looking like the link above for OpenBSD.
It's all what you're accustomed to. Git confuses the heck out of me every time I use it for anything more complicated than clone, pull, commit, or push.
I bet you're smart enough to understand it. Inside, git inside is much more logical and neat that the (unfortunate) historical CLI makes it feel. It's a shame it holds people back from using this very powerful and useful tool. (Once you've reached understanding, switch to magit, gitui, tig, etc, for comfort and speed.)
I pretty much do solo work these days, I don't need rebasing or branches or pull requests or anything like that.
I honestly don't really need version control at all but it's a pretty baked-in habit. I thought svn was nice, a good balance of capability and understandability. It worked well in the "central respository" style of the day, which is effectively how I work.
On the other hand I'm quite comfortable with long shell pipelines using find and xargs and awk and other utilities that are at least as arcane as git, so like I said, it's all what you are accustomed to. If I were doing git feature branches, rebases, and pull requests every day at work, I'd probaly feel that they were pretty easy.
Git bisect is one example of this. If you know roughly when a bug was introduced, you can do an O(log n) binary search to find what commit introduced it.
I don't understand, and maybe you can explain if you are willing, why people use this to indicate speed? It gives no practical reference of how fast or slow that search would be without knowing the real factors involved. Right?
An O(log n) tool will probably work fine on a large repo, an O(n^n) tool will probably have an unusable run time on anything but tiny repos.
I would generally infer that to mean “this will run in an acceptable amount of time on basically any repo”. There isn’t much of a reason to say that it’s O(log n) if it has a run time of 6 weeks when n is 1.
Wouldn't all repositories in use today offer O(log n) speeds though? I would think it's a given just because search has been a solved problem for many decades now. Are there any that search at O(n^n)?
The point of bisect is that it understands each commit as a linear snapshot of the code base, to narrow down the commit that you’re looking for. So if you say that you know commit 1000 is bad and commit 1100 is good, it will ask you to check if commit 1050 is good. If 1050 is good, it knows that the bad commit has to be between 1000 and 1049 so it asks about 1025. If 1050 is bad, same thing in reverse.
A more naive approach would ask the user to check commit 1000, then 1001, then 1002, etc.
I’m honestly not well-versed enough in other version control systems to comment on whether they contain a similar feature or whether users would have to write their own.
It’s not magic that it’s O(log n) so much as that git has a native O(log n) manual search feature.
A better term might be git's "data model".
This is likely true for existing developers. But might discourage some fresh blood from joining. So in the long run the overall productivity might suffer from this.
That's probably more of a feature than a bug: it acts as a "natural" filter.
I have worked with CVS myself in the past and would probably have no problem getting used to again.
Some fresh out of school smart people might consider it a thing of the past. And just decide not to deal with it. Like COBOL.
This, but also: "can you make an effort to conform yourself to others instead of forcing others to conform to you;" Inexperienced people often lack the visibility of their elders, so it really makes sense to see whether they can lower their ego.
> Some fresh out of school smart people might consider it a thing of the past. And just decide not to deal with it. Like COBOL.
Are you using "smart" positively or not? Being smart is often frowned upon in SE. Then, driving smart people away still is a good thing.
If you meant positively... considering things of the past to be useless by mere virtue of being of the past, is definitely not a positive character trait, so we'd have a contradiction.
Side note, but the problem with COBOL is not that it's old; to quote wikipedia:
> COBOL has been criticized for its verbosity, design process, and poor support for structured programming. These weaknesses result in monolithic programs that are hard to comprehend as a whole, despite their local readability.
There are strong mindset differences between various software communities; it might takes a little bit of time & effort to appreciate a more frugal/conservative approach to software engineering.
The previous links highlighted some aspects of those mindset differences. [0], while unrelated to OpenBSD, is another good illustration.
That's to say, OpenBSD people probably don't care much for a more featureful experience: it won't make them more productive, even if it may look like it would from the outset.
Here's a recent example which made me laugh: 2 months ago, a "shortcut" for reverse search was implemented in acme[0], a 30 years old text-editor. It's not even qualified as a "feature" yet, rather, as an "experiment"[1].
Every little decision is carefully weighted; every square inch of the software is carefully and precisely designed. Japanese wooden planes are similarly designed: they don't look like much, especially in comparison with more modern, shinier tools, but they're surprisingly well-thought.
[0]: https://en.wikipedia.org/wiki/Acme_(text_editor)
[1]: https://github.com/9fans/plan9port/commit/0c79c32675e83ff3d8...
https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/games/quiz/Mak...
As for how you work like that, the number of people with commit access is small and they all know each other. There aren't a lot of branches. Most of the collaboration features of git aren't needed.