At first I tried using SVN - but I'm so upset that I blocked it, and I had to relearn every time the merge goes badly, which really annoys me SVN.
I really have not noticed that Subversion has the problems you have. I donβt feel it is blocking and merging with Subversion works very well. In fact, I have fewer Subversion merge issues than Git merge. I suspect that most of your frustration is with unfamiliar software, and not with inherent problems with Subversion. I am also upset about software that does not work the way I use.
However, you can also use Subversion instead of getting around the problem. You will be working for Subversion again and again because it is popular in the software world. It is easy to use and works well. In this world, you may prefer OS X and Linux on Windows, but you still need to know Windows. I know that unfamiliar software also upsets me. However, unlike Windows, Subversion is not evil. In addition, it works very well.
One thing I like about Git that I really miss Subversion is the ability to do my work without affecting the main repository. My workflow in Git is as follows:
git checkout git pull git add git commit git add git commit git add git commit git add git commit git add git commit git add git commit git push
If you are a serial committer like me, you can try Git-SVN : This allows you to work with Git locally and execute sequential commits, but when you do pushes and pulls, you are really talking to the Subversion repository. However, this does not mean that you can simply pretend that you only work with Git. When I enter and unite, I still need to talk directly to Subversion.
Unless you're a serial committer, Git-SVN probably won't buy you much. All you do is complexity and more frustrations.
Subversion is designed to work with an unstable trunk model, which is used in a continuous integration environment. This means that everyone usually has the same branch. It makes you play well with others and make small incremental changes. However, there is no reason why you cannot create your own branch in Subversion and do your work there.
I am doing a lot of code restructuring, which means that you move files and do a lot of work that cannot be completed in one day. I canβt work in the same branch that all other developers use, so I create my own private branch. If someone should have problems with the merge, it will be me, because I do not just modify the file here or there, I change the entire layout of the code. However, Subversion almost always handles merging with aplomb. I regularly reinstall. When I finish my work, I will make mass delivery without any problems. Then I will delete my branch.