KDE development with git

Paolo Capriotti p.capriotti at gmail.com
Wed Jul 11 16:00:49 BST 2007


On Wednesday 11 July 2007 16:41:01 Tim Beaulen wrote:
> On 7/11/07, Paolo Capriotti <p.capriotti at gmail.com> 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




More information about the kde-core-devel mailing list