This made me wonder, what use was diff without patch?
But then I remembered diff -e which produces an ed script. In the 5th and 6th edition the -e option was simply -. I guess the reason for the non-ed output is to include the text of the deleted lines.
The diff3 utility (which arrived in the 7th edition) can be used as a sort of combined diff and patch, again with the help of ed, but it seems a bit awkward.
I thinkmerge arrived as part of RCS? at least, that’s the way it is packaged now. (POSIX has neither RCS nor merge.) Curiously I can’t find any sign of a merge facility in SCCS – maybe I am missing something; SCCS terminology is a bit weird.
The crucial ingredients for pre-git open source workflows are context diffs, plus patch. Including the context makes the diff a lot easier to review without applying it, and it allows patch to be much more robust against concurrent changes. As far as I can tell, diff -c first appeared in 4BSD in 1980. It predates the start of the CSRG SCCS history of diff.c. As the maintainer of unifdef I am greatly amused by diff’s -Dstringcpp mode.
I’m mildly interested to encounter this perspective, as I think I more often use diffs merely to look at the differences than to apply them as a patch.
It occurred to me many years later that these are just patches … that you type in by hand.
Why didn’t DOS users know about patch in the 90’s ?? It was already 10 years old then? I guess nobody ported it, and we didn’t have a good shell anyway.
I think I did a bunch of this when I was 13, but I also failed to get a lot of it to work.
Just commenting to say that even tho 1997 was way after I stopped using WWIV, I’m one of the few people who remember it! And I often think about how things like WWIVnet (we were @6555) and FidoNet were attempts to create an internet in the public sphere, without knowing that the internet already existed in secret in the military/academic world.
The tags — “historical”, “unix” — had me expecting this to be a piece on the history of the development of the Unix tool diff. It’s not. This is what it says on that subject:
I haven’t seen anybody mentioning it or even noticing it; it’s just the water we swim in now, if we make software. But this month marks the fiftieth anniversary of a core piece of free software technology that would quickly become a seminal piece of collaborative software, the bedrock under every version control system and 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, on this month in 1974 the world was given diff.
Most of the article is dissing of non-Unixy ways of version control (“Track changes is trash”) and complaining that it’s too difficult to propose changes to arbitrary websites. I guess it’s trying to make a somewhat broader point, albeit using more angry allusiveness than straightforward argumentation, or at least so it seems to me who haven’t slept.
This made me wonder, what use was
diffwithoutpatch?But then I remembered
diff -ewhich produces anedscript. In the 5th and 6th edition the-eoption was simply-. I guess the reason for the non-edoutput is to include the text of the deleted lines.The
diff3utility (which arrived in the 7th edition) can be used as a sort of combined diff and patch, again with the help ofed, but it seems a bit awkward.I think
mergearrived as part of RCS? at least, that’s the way it is packaged now. (POSIX has neither RCS normerge.) Curiously I can’t find any sign of a merge facility in SCCS – maybe I am missing something; SCCS terminology is a bit weird.The crucial ingredients for pre-git open source workflows are context diffs, plus
patch. Including the context makes the diff a lot easier to review without applying it, and it allowspatchto be much more robust against concurrent changes. As far as I can tell,diff -cfirst appeared in 4BSD in 1980. It predates the start of the CSRG SCCS history ofdiff.c. As the maintainer ofunifdefI am greatly amused bydiff’s-Dstringcppmode.I’m mildly interested to encounter this perspective, as I think I more often use diffs merely to look at the differences than to apply them as a patch.
Rob Pike points out that Doug McIlroy related some earlier context about precursors to diff on the TUHS mailing list
Did anyone else start using computers with MS-DOS and WWIV BBSes? Remember WWIV mods?
https://git.faithcollapsing.com/ssaus/WWIV_Utilities/src/commit/7ba4ebf867b23d438846cbed4094c03443488dab/WWIV-424-MODS/surge01.424
It occurred to me many years later that these are just patches … that you type in by hand.
Why didn’t DOS users know about
patchin the 90’s ?? It was already 10 years old then? I guess nobody ported it, and we didn’t have a good shell anyway.I think I did a bunch of this when I was 13, but I also failed to get a lot of it to work.
Just commenting to say that even tho 1997 was way after I stopped using WWIV, I’m one of the few people who remember it! And I often think about how things like WWIVnet (we were @6555) and FidoNet were attempts to create an internet in the public sphere, without knowing that the internet already existed in secret in the military/academic world.
The tags — “historical”, “unix” — had me expecting this to be a piece on the history of the development of the Unix tool
diff. It’s not. This is what it says on that subject:Most of the article is dissing of non-Unixy ways of version control (“Track changes is trash”) and complaining that it’s too difficult to propose changes to arbitrary websites. I guess it’s trying to make a somewhat broader point, albeit using more angry allusiveness than straightforward argumentation, or at least so it seems to me who haven’t slept.