Re:In search of 2.11BSD, as originally released
by breput on Tuesday July 14, 2020 @09:37PM
(#23840255)
The confusion might be around the term "patch". These can be sometimes be simple diff patches. Or they can be multi-step processes, including reboots, all wrapped up into a single "patch".
For example: https://www.tuhs.org/Archive/Distributions/UCB/2.11BSD/Patch...
I recently updated from patch level 462 to 469 (the most recently patch available) and even with excellent documentation, it was an involved process. If you look all the way back to the first set of patches (https://www.tuhs.org/Archive/Distributions/UCB/2.11BSD/Patch...) there isn't even documentation for the most part. Some diffs, some random tar files, and some "Remove everything above the #! /bin/sh line." patches.
Re:In search of 2.11BSD, as originally released
by progman32 on Tuesday July 14, 2020 @09:42PM
(#23840287)
Ah. I understand the difficulty now, thanks. Some patches might not even apply in reverse!
Re:In search of 2.11BSD, as originally released
by bsdimp on Tuesday July 14, 2020 @10:08PM
(#23840427)
It's hard to reverse apply 'rm /usr/src/bin/ld.c' in the instructions to patch 160, for example. You have to reconstruct ld.c from 2.10.1BSD, and then add missing changes to get it to work...
Re:In search of 2.11BSD, as originally released
by qubex on Wednesday July 15, 2020 @01:36AM
(#23841720)
Exactly: deletions is what came to my mind instantly and if you hadn’t raised the issue then I would have.
Re:In search of 2.11BSD, as originally released
by jacoblambda on Tuesday July 14, 2020 @09:35PM
(#23840240)
You can do this but rebasing plays havoc on a lot of git integrations. Every time you insert a commit into an earlier spot, it changes the hash of every commit after it which has the potential to cause all kinds of problems for systems assuming git hashes are permanent.
Re:In search of 2.11BSD, as originally released
by progman32 on Tuesday July 14, 2020 @09:47PM
(#23840312)
For sure, this is very bad practice when using git for forward development. When working in reverse, a lot of things go out the window :)
The way I see it, git's main role here would simply be a way to standardize patch format, not its usual role as a distributed software development aid.
Re:In search of 2.11BSD, as originally released
by bsdimp on Wednesday July 15, 2020 @12:50AM
(#23841454)
Git's role would be to record the system incrementally as each patch is applied. I've already worked all the way back to the unpatched system. I assume that if I got it right, then I'll be able to rebuild. I've mostly been able to, and I'm investigating the mostly. Plus, I'm making sure that it's 100% reproducible so anybody can down the TUHS artifacts, run my scripts and have release 0 tapes, and a git repo of all the changes. And historians will be able to see what's definitely original, and my reconstructions of missing changes to programs. Those we'll never know to a higher degree of 'consistent with everything else'
I might be misunderstanding, but I don't think this is true. As long as there's a complete snapshot to start from anywhere in the revision history, it's possible to apply each patch in reverse (as far back as possible), even if it doesn't get all the way to patch level 0. Then later, if earlier patches are found, these can be applied in reverse and the branch rebased.