Git repo safety guidelines
-
-
Then spend the next 5 hours working out what little, stupid, finicky thing Git is throwing a hissy fit over which is preventing you from committing and/or pushing until the building burns down around you. As you spiral your way into Hell, you realize that you're spending the rest of eternity using Git.
You despair. Forever.
-
I am-- for good or bad-- old enough to remember version control before git.
Try being primary release engineer for a large project in CVS with multiple layers of submodules, each of which receives third-party-tracking re-imports into several branches. All with customized local autotools (including inhouse M4, woo) applied in tree to each that no one else seems to know how to update.
Rough? Now try teaching it to various iterations of junior engineers and developer types, and having to fix it when they inevitably hose everything, ever, in all the ways.
Git... isn't bad. It isn't bad at alllll... but I do know your pain.
-
The problem I have is that people assume it's "Git vs. Subversion" or "Git vs. CVS". This is, technically, referred to as the fallacy of the excluded middle. (And even with these, I'd literally prefer anything over Git. Anything. Yes, including just using tar to bundle up working directories in an ad-hoc manner.)
Thankfully, though, there are DSCMs out there that aren't Git. There's Darcs, Fossil, Monotone, Mercurial, and BZR off the top of my head. (There are undoubtedly more than this.) I have experience using three of those and all three of them are superior to the UX of the Git world and would, I'd wager, be more than adequate to cover the SCM needs of 99.44% of software projects that are not the Linux kernel.
edited to add
-
I've used RCS, CVS, TLA (arch), Darcs (and used to be a supplier of magically statically linked solaris sparc binaries because of the trouble others have with Haskell), hg, bzr, svn... I think that's about it.
I really did like Darcs, but the way they don't-handle branches by making you just use additional repos for branching is awkward to me. Git feels like the best of all worlds.
"Back in my day, we had to commit our changes five miles through the snow..."