site banner

Friday Fun Thread for August 29, 2025

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

1
Jump in the discussion.

No email address required.

Wikipedia had diffs long before that. There were also older source control systems, but they tended to focus on tracking files instead of tracking sets of changes to multiple files.

The Canadian legislation process was pretty archaic back in 2010 or so when I had some direct knowledge.

The House of Commons, the Prime Ministers Office, and the various ministries are all involved in drafting legislation and all have their own completely separate IT systems. Their IT departments disabled all of the collaboration features outside of their individual Microsoft Domain for "security". All collaboration was done by emailing full documents or reading changes over the phone.

So screw ups like this will naturally happen. Of course it's entirely possible that someone did it on purpose.

Older verion control systems tracked changes all right, but they didn't have a good diff-merge mechanism. In something like SVN you would normally check out a file, leaving an exclusive lock on it, modify it, then upload the new version and release the lock. The system would track the difference as a reverse diff to save space, but wouldn't really let you merge two diverged histories like git does.

SVN of course had a diff merge mechanism, and one person checking out a file didn't prevent others from working on it. The checkout happened in your local copy of the central repo. When you committed, your changes are immediately sent to the central repo and you must resolve any conflicts at that time.

The difference with git is the diverging histories you mention - subversion does not allow you to have a chain of commits that diverge from the central repo that you plan to reconcile later. It has to be reconciled at every commit.

I met a guy at a meetup who's contracting specialty was using CVS (Concurrent Versioning System). Specifically he specialized in helping out companies who tried to use the branch feature in CVS and had screwed up their repo.