OpenBSD Crossed 400k Commits(marc.info)
marc.info
OpenBSD Crossed 400k Commits
https://marc.info/?l=openbsd-tech&m=157059352620659&w=2
45 comments
Anyone know of projects with >1M commits? >10M? >100M?
KDE reached 1 million commits ~10 years ago
https://dot.kde.org/2009/07/20/kde-reaches-1000000-commits-i...
https://dot.kde.org/2009/07/20/kde-reaches-1000000-commits-i...
KDE used to be monorepo right?
Yes. It used to be, until they started moving to git at around the same time as the news article above.
Well, with Subversion you can sort of have different repositories in one repository... I think just about nobody had a checkout of the monorepository (it was too large), so changes (e.g. in public API) in several parts of the stack were not perfectly synchronized. There was one check-in per atomic repository for such things.
The Linux kernel is quickly approaching the 1M mark, currently sitting at 871k+[1]
[1] https://github.com/torvalds/linux
[1] https://github.com/torvalds/linux
It also has 622 releases. So on an average, 1400 commits make it to a single release. And releases are RC level not just version bumps. A single version bump has well over 10000 commits on an average.
Hasn't the rate of development grown too over the years? It's not going to be an even distribution.
Greg KH gives a pretty good talk about the rate of kernel development fairly regularly[1]. But yes, it's been consistently getting faster every kernel release.
[1]: https://www.youtube.com/watch?v=vyenmLqJQjs
[1]: https://www.youtube.com/watch?v=vyenmLqJQjs
Absolutely. It's a crude estimation. If anything, it's going to be even more commits per release. The point being, it's impressive that those many changes go into a single release of something as critical as the Linux kernel.
Note that this number doesn't include any pre-git history -- all of those commits were made after April 2005 (v2.6.12-rc2 is the first commit within git).
The initial commit the parent comment is referring to:
https://github.com/torvalds/linux/commit/1da177e4c3f41524e88...
https://github.com/torvalds/linux/commit/1da177e4c3f41524e88...
Number of commits highly depends on people in a project and workflow of the team. I make commits every 5, up to 10 minutes, so I do like 30-70 commits per day[1], some people in another team make a commit per day. Linux on github is close to 900k [2]
https://imgur.com/a/nCuOJHU
https://github.com/torvalds/linux
https://imgur.com/a/nCuOJHU
https://github.com/torvalds/linux
In our team it's even less. We rebase and squash to one commit before merging, so one commit can take a couple of days or even a week.
FreeBSD is getting close: 513k ports commits, 353k src commits, 53k doc commits. I'm guessing another year to get from 919k up to 1M?
Chromium recently crossed a million bugs. And if you count Chromium and Blink together (they're in one repository for quite some time now), it's probably over a million commits too.
https://www.openhub.net/p/chrome says 810K commits, blink is 182K commits (https://www.openhub.net/p/chromium-blink), so 993K. But the commit count is 2 months old and so they probably are over 1M now.
The Google monorepo had 35M in 2015: https://softwareengineering.stackexchange.com/questions/4143...
Not sure what Microsoft's monorepo for Windows is like but it might be near 100M.
Beyond that I would guess some aerospace or DoD projects have a larger codebase, but they probably don't use version control consistently.
Not sure what Microsoft's monorepo for Windows is like but it might be near 100M.
Beyond that I would guess some aerospace or DoD projects have a larger codebase, but they probably don't use version control consistently.
I would be surprised if they had code bases that large.
https://www.f35.com/about/life-cycle/software
F-35 has 8 million LOCs. An equivalent C++ project would be Qt (~ 8 million LOCs and > 100k commits).
https://www.f35.com/about/life-cycle/software
F-35 has 8 million LOCs. An equivalent C++ project would be Qt (~ 8 million LOCs and > 100k commits).
Rust just crossed 100 k:
https://old.reddit.com/r/rust/comments/dcoirb/rust_now_has_m...
https://old.reddit.com/r/rust/comments/dcoirb/rust_now_has_m...
The Apache svn repository is approaching 1.9 million commits http://svn.apache.org/viewvc which includes all the various Apache projects
400k CVS commits
It's also probably one of the oldest open source repositories. OpenBSD pretty much pioneered the concept of making their VCS open to the public over the Internet (hence the name).
Yes, OpenBSD invented anonymous CVS which was the first way to access a version control system without prior authorization http://www.openbsd.org/papers/anoncvs-paper.pdf
It was already ubiquitous in 1997 when I got started working on open source software, so I took it for granted. I was surprised to find out 20 years later how new anoncvs had been and how fast it spread to other projects like FreeBSD and Apache httpd.
It was already ubiquitous in 1997 when I got started working on open source software, so I took it for granted. I was surprised to find out 20 years later how new anoncvs had been and how fast it spread to other projects like FreeBSD and Apache httpd.
knorker(4)
It’d be beautiful to see a plot of how that number of commits has accumulated over time
Two years ago I did something similar. Plotting the surviving lines of code in the OpenBSD code base across commits:
https://twitter.com/mulander/status/809120593606049792
https://twitter.com/mulander/status/809120593606049792
Nice plot. Interestingly, it seems that by far, relatively, most code from 1999 was removed. What did they add in that year, which got removed then (around 2014)?
not op, and not 100%/authoritative, but I can think of some things:
- adding/refactoring locking for improved SMP support
- dropping older architectures (VAX, etc)
- dropping older protocols/servers (e.g ISDN, decnet sorts of things, obsoleted proto-IPv6 versions)
- dropping/refactoring systrace
- rewriting or dropping various network routing daemons (apache HTTPD 1.3 removed from tree at this time)
- libressl replacement at this time
see also: https://en.wikipedia.org/wiki/OpenBSD_version_history
relatedly, in the openbsd world, Ted Unangst is well known enough for doing old/unused code audit+removal that there is a slang verb 'tedu' (his handle, usage e.g. "it got tedu'd") which means basically zapping old stuff. See 1st comment in the twitter thread..
- adding/refactoring locking for improved SMP support
- dropping older architectures (VAX, etc)
- dropping older protocols/servers (e.g ISDN, decnet sorts of things, obsoleted proto-IPv6 versions)
- dropping/refactoring systrace
- rewriting or dropping various network routing daemons (apache HTTPD 1.3 removed from tree at this time)
- libressl replacement at this time
see also: https://en.wikipedia.org/wiki/OpenBSD_version_history
relatedly, in the openbsd world, Ted Unangst is well known enough for doing old/unused code audit+removal that there is a slang verb 'tedu' (his handle, usage e.g. "it got tedu'd") which means basically zapping old stuff. See 1st comment in the twitter thread..
Y2K mitigation code
you can use Gource to get a graph like this: https://youtu.be/iZjvVxbM3kY
Why is 400K special? Why not 524288, considering we're coders after all?
Because that’s the number of commits they recently passed. What about being coders makes it more interesting for us to wait a few more years than talk about it now?
;)
;)