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