I haven't seen anybody mentioning it or even noticing it, like it's just the water we swim in now, but this month marks the fiftieth anniversary of the release of what would become a seminal, and is arguably the single most important, piece of social software ever created.

Written by Douglas McIlroy and James Hunt and released with the 5th Edition of Unix this month in 1974: diff.

https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s1/diff1.c

My friend @gvwilson has argued, and I am absolutely ready to believe, that you can divide the entire computational universe into "has diff and patch or doesn't", and that people living without it don't even have the language to recognize how bad they've got it, how many opportunities to share and collaborate have been silently denied them.

Word processors, spreadsheets, slides? "Track changes" is _trash_ by comparison. No programmer would consent to live the way we make office workers live.

@mhoye @gvwilson that's a bit of a "say you've never worked with legal documents without ever saying ..." admission. Line-based diffs might be okay for code, but are no use for contracts.
@scruss @gvwilson I don't buy that; any diff/patch pair is necessarily domain dependent, not necessarily wire-format dependent. There's no reason "contract diff" and "contract patch" couldn't understand the necessities of contracts vs bare text.

@mhoye @gvwilson

can diff/patch:
1) attach comments to each change, identifying who made the comment and when?

2) show which changes have been accepted by the counterparty?

3) ensure (possibly even enforce) that both parties are working from the same standard document?

These are all things that legal/engineering document exchange have relied upon for decades, if not centuries

@scruss @mhoye @gvwilson I am "unencumbered by detailed knowledge" :-) about this but I believe the answer is yes. or if not yes one of the 8 million :-) version control systems other than git or mercurial could do this! Hopefully @timbray would know more?!?