What I like with SVN:
- it is easy to fix commit messages
- the externals are easy to understand
- the properties
- the file locking
What I don't like:
- after more than a decade the umlaut problem of composed/decomposed
UTF-8 has not been solved
What I like most about Git:
- it allows to create clean commits, because I can modify all my local
commits, e.g. reorder and squash them, in case I detected an error in a
previous, unpushed commit
- it is still much stronger merging renamed, modified files
- I can solve every conflict locally, try again and again, without
losing any changes (imagine a complicated merge in SVN where you now
have solved a couple of conflicts, but an update brings new conflicts)
- I can switch branches very quickly back and forth without the need to
transfer the whole project over a network (even having to wait a couple
of minutes with a decent connection is too slow if you are used to Git's
seconds - we are not talking about the fact that it is wasted energy to
transfer the same data again and again just because SVN does not cache it)
- Git allows me to create a feature in my own branch, turn all my
commits in this branch up-side-down if I need (even after pushing to the
repository) and finally rebase it on top of the main development branch
Of course, the latter only works fine if there is just one developer of
this feature branch, but usually this is the case for me. More than 5
years ago we have massively refactored our products to switch from one
GUI library to another (Swing -> SWT). Without Git and rebasing this
would have been much more complicated.
Most of the things I like in Git are not possible with other DVCS, or
require some non-standard extensions, or may produce weird states you
don't know how to get out.
I don't know what SVN 2 would need to have, so I would consider to use
it for a software product repository again.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
Received on 2019-06-25 19:15:18 CEST