[Oberon] all in one git tree
schierlm at gmx.de
Sat Dec 26 15:14:42 CET 2020
Am 26.12.2020 um 12:21 schrieb Liam Proven:
> It's very powerful, it's very unfriendly and complicated, it includes
> every option and capability from every other revision-tracking tool
> I've heard of an a million more. I've used it every working day for
> nearly 4 years, and I hate it.
> It's a typical Unix tool: grotesquely overcomplicated and overpowered,
> very easy to horribly hurt yourself with, destroy all your data and
> then send a mangled broken copy to all your coworkers so their data
> gets destroyed too.
For me it's more than 8 years, and while I do agree that Git includes
too many ways to shoot yourself into the foot, it is very hard to make
it destroy all your data.
Especially when doing 3-way merges and you accidentally use the branch
names in the wrong order, your data may seem to be gone.
Assuming that your data has been committed to a branch (and be it a
temporary local branch) at some point within the last 30 days, you will
be able to get it back from the reflog (if you can remember the branch
name and some approximate time stamp when it was still there). And 30
days are generous; usually it would be enough if you could only go back
15 minutes in time.
Which makes me create lots of temporary branches (which I delete quickly
afterwards). Even when I considered some change a "dead end" and want to
start over. Perhaps later I will notice that the dead end was in fact
the right way to go, so I can recover the change from the reflog.
Speaking of SVN, it has destroyed my data more often than Git.
Especially when you have uncommitted changes (which happens often with
SVN) and update to a newer revision or different branch that has a
conflict, it forces you to merge the changes right away (there is no
easy option to undo the update) - and when you are unconcentrated as you
think about what you actually need to test on that branch, you mess up
the merge and your working old version is gone. With git, it would still
be in the temporary branch where I can easily get it back and try again.
But probably that is just a matter of taste. But in case you never used
"git reflog", think about it when you next time think that you lost data...
More information about the Oberon