Draw a square around Einstein's face. Call the side length of the square a and the area of the square A. We have A=a^2. Einstein takes up some portion p < 1 of that area, so Einstein has area E = pA. Now we scale the whole thing by factor f. So the new square has side lengths fa, and thus area A' = (fa)^2 = f^2×a^2 = f^2×A. Since the relative portion the face takes up doesn't change with scaling, the face now has size pA' = p×f^2×A = f^2 × pA = f^2 E.
Does that help or was that not the part you were missing?
What are these called / do you have a source for that? I never heard of that and a quick Google didn't turn up anything except for changes planned for 2028.
Which old times are you referring to / what are "sensible" names?
I thought about it and I don't know what a better name would be. Off the top of my Head, I know Perforce, BitWarden, Subversion, fossil and git. And then the abbreviations CVS, RCS and SVN.
> One repo uses `master` but a subtree uses `main`. If you make a mistake and checkout `main` you end up clobbering your whole working tree with the subtree.
If you replace checkout with switch/restore, that foot gun goes away.
A very effective solution for that is a well-configured shell. IF you summarize the state of the repo in the prompt, it is always visible while typing a command.
That's the reason why it was replaced by two separate, more sensible commands:
git switch for switching branches etc, which is safe, and the inherently dangerous git restore for reverting changes in your working directory.
Funny, I did just exactly that at work yesterday. If your branches have linear histories, here's what to do:
1. Make sure all branches touch separate files. I would strongly recommend git-filter-repo over git-filter-branch. It's way simpler to use and orders of magnitudes faster.
2. Generate the list of commits in the correct order:
Does that help or was that not the part you were missing?