Originally Posted by Avonosac
It sounds like you didn't branch much if you thought subversion and merging were OK. As soon as 2 developers were working on the same file in different branches, or support, core maintenance and custom development got working on the same files it was a colossal waste of resources.
Git merges better, and branches better than any other VCS out there by leaps and bounds. The problem you seem to have is you're using a bad GUI tool to try to avoid learning git command line. This is kind of weird for me, because git command line is one of the main reasons its so powerful, you can easily include chunks and precisely manage commits. Not to mention all of the issues you were talking about with the tool were because the real actions being taken on your local copy were being obfuscated to you. Backing out of a merge should be trivial.
git checkout -b mergebranchname
git merge branchtobemerged
git checkout mainbranch
git merge mergebranchname
Errors in that process?
git branch -D mergebranchname
All backed out.
Really though, the problem is the basic premise of people who use git via tools like Tortoise .. they think its a plug and play replacement for SCM tools like SVN and use it as such, and you are shooting yourself in the foot because the real power of git is that it is a fundamental paradigm shift from the crappy way of doing VCS in SVN and older systems.
Large feature branches, version branches, code base version enhancements are all ridiculously easy using git compared to SVN.
Originally Posted by Mrzev
I have had too many bad experiences with GIT, but it is mainly because SourceTree is (IMO) garbage
As i mentioned, my issue wasnt so much with GIT, but with the tool. CLI works great with simple things. I was in charge of the SVN at my previous job and we had 20 or so projects going, and each signed build (weekly) we would tag, and each major release we would branch. Using "Turtle" , it was EXTREAMLY easy for me to do the tagging, branching, even browsing of all the code. I could get the files, look at the history... everything was just easy. Merging is more dictated on the external tools.
What I didnt like about GIT was that there was 2 stages. You have your local repo, and the server repo, so i would need to commit then push. There is definitely some great use cases for doing stuff like that, but for me its just extra steps, and extra things that can go wrong IMO. There is a TON of great stuff in there, but it just over-complicates things most the time. One thing we wanted to do with SVN was gated check-ins based on automated test results. I heard it was possible with SVN with hooks or something, but I never got around doing it. I'm sure its not too hard to do with git because of the pull request stuff. If i was working on an open source project with a bunch of random people doing their own thing, GIT is the best option hands down.