On Wednesday 11 July 2007 16:41:01 Tim Beaulen wrote: > On 7/11/07, Paolo Capriotti wrote: > > Git encourages a development model where many branches are created, > > features are developed out of the main line, and then merged back to the > > master branch. This is something which is hardly possible with svn (and > > impossible, if one wants to keep some of the branches private), but IMHO > > highly desirable for many KDE projects. > > And if I remember it correctly, this was one of the main reasons for > the switch from cvs to svn. > > I don't understand the "hardly possible" bit as it is very easy to > create branches and merge them back. In fact, this is done a lot in > KDE. Of course it can be done, but there are many drawbacks: - If you start to develop a new feature, often you have no idea how long that will take, and for the whole duration of the process, you have a working copy which does not build, so you cannot commit. Keeping all changes unversioned in your private sandbox is IMHO quite dangerous, and limits the usefulness of the VCS. With git, you always create a branch for non-trivial changes. If the branch ends up being actually trivial, you can merge it immediately and no one will even notice you created a branch. The branch is private to your repository, but on occurence can be exported, so that other people can help you. - With git all branching and merging can be done locally, even if you have no network access. This may seem a limited advantage, but has its importance (not least because of performance). Furthermore, there's no logical need to add extra load (and clutter!) to the central server when you are the only one working on a branch. - Merging branches in git is actually easier. Git keeps track of the partial merges for you, and has better algorithms for merging. You can sync back and forth between the branch and the trunk very easily. I have little experience in merging branches with svn, but the few times I did it, it was a real pain. With git, I've learnt how to merge branches in a few days, I now I do it regularly, with little or no trouble. Anyway, I'm probably not the best git advocate around. I have little experience with VCS's and expecially with git. I just wanted to try it out without having to lose all the advantages of living in the KDE svn. Paolo Capriotti