Yet an other post to say svn sucks. yes it is. But many people who use svn are happy with it and i was happy to.
It’s hard to maintain a trunk when 5 people are commiting on it during the project life. So i have started to look at DVCS (git hg, bzr). I have tryied GIT because of it’s popularity.
At work, someone is using mercurial (hg) and we are two people intersting in GIT. So i have decided to test it but over SVN. it means the central repository is still an svn one.
Here is the way i m using it:
- clone the repo (git svn clone blabla)
- branche
- work on your code (commit, …)
- merge on master
- git svn dcommit
And you get it, only one commit on the trunk (master) and the power of git to merge, commit, …
Some cool features and properties of git:
- space on hdd of a git clone < svn checkout (and you get the all history
- fast, git is damn faster than svn. When you type enter key, you get it (except from git svn clone, because here it’s svn)
- qgit2 (qt4) is a very good tool (you can browse your svn history, look at diffs, ….)
- the help on command line. git status give you help for next command you will make
But there are some point i have not found handy:
*git st mygitrepo/ doesn’t work (“is not a git repo” but it is)
- no default alias (st, co, …) but can be easily configured
- svn externals can be seen has submodules, but no managed in that way. git svn do not handle svn:externals and you can’t use git submodules over svn
- eclipse do not manage git (and i know it s a pain for eclipse guys because it break the way plateform is thought)
I hope all that things will be improved in the futur of git, but now i m using git at work. Next step will be code review TTW.