Waiting for the bus. Italian kids on speed doing superhero moves behind my back and the parents are not in control. I am distracting myself by writing up a fediverse thread.
I was talking with @Sandra@idiomdrottning.org, @splitbrain@octodon.social and @phf@social.sdf.org about git logs. I claimed the following:
Git does not have wiki culture. If I could rebase and squash and edit to my hearts delight, that would work for me. But git has blockchain culture: write once, append only, no take-backs, and I don’t like it.
The reason I say this is because the artefact I’m interested in is the git log as a readable text. When I need to upgrade software such as Mojolicious or GoToSocial, I often look at a release page, but I hardly every look at the details. I don’t care for long lists of issues and I certainly do not read the git log.
My claim is that the git log is useless for the purposes of learning about new features added or migrations to run during upgrades. And my own commit logs are just as useless because I don’t dare edit and squash the history. The git log is simply a comment for the edits made to the code and does not serve as a replacement for release notes, as far as I am concerned.
So, while it is true that the wiki history is not edited either, the wiki text as the readable end-product is in fact edited. The git log and its messages are not.
I guess I’m an undisciplined programmer who is convinced the feature is done and then discovers an edge case, and the I realize I forgot the docs, and then I find a better way to describe it, oh and here is a test that makes sense, oh and I found a typo and here is a grammar fix. It’s hard for me to know when the feature is done-done. There never is a good point where I think to myself: Now is a good point to merge.
This is just like buying and selling stock. It is hard to know what the future brings. All that you can do is try and make sure there are no catastrophic failures when things go wrong.
The Perl code archive (CPAN) suggests a `Changes` file. I think I’ll try that.
#Programming
@Sandra@idiomdrottning.org left the following comment:
Git does not have wiki culture. […] But git has blockchain culture
That’s not quite what you started with. I said git has wiki culture. Git makes the entire software world one big wiki. I had just been reflecting on that earlier, finally having fixed* a long standing bug in markdowku. That’s such a marvel to me, that thanks to git I could make a version that works for me and my friends and I could send the fix upstream so they could apply it or not. When I see a typo or error on a webpage, if that webpage is a wiki, I can fix, I can fix! And thanks to git, it makes even more things be like wikis in that regard.
Git is not a linear line of append append append. It’s a flexible bowl of paperclips, malleable, friendly, it helps me, it’s my friend. If upstream doesn’t merge I’m still gonna be OK. I love git. Don’t slag it.
And the log isn’t just linear either: it makes the source repo be like a wiki in that there’s both a global “recent changes” and a local “page history” for each file, even each line with a good blame viewer.
Now, is documentation outside of the log, for migrations for example, a good idea? Yes. We want README and INSTALL and TODO and COPYING, we want docs. Never disputed that.
---
Sandra is right, of course. The original conversation went something like this:
Alex
Sandra
Alex
Sandra
Alex
Sandra
Alex
Sandra
Alex