[Kde-scm-interest] Git and the needs of KDE PIM
mcguire at kde.org
Sat Jan 16 18:41:46 CET 2010
On Tuesday 12 January 2010 20:54:14 Stephen Kelly wrote:
> At the recent kde pim osnabrueck meeting we discussed the upcoming switch
> to git and how it affects kdepim.
> If you need to know more about this stuff, hopefully Thomas McGuire can
> answer any questions.
let me provide some details about what we do in KDEPIM regarding merges and
what we need from Git.
First of all a disclaimer: I know next to nothing about Git, so I don't know
what it already provides.
As Steve said, we have quite a lot of branches, and we are required to merge
all commits from the enterprise branches of KDEPIM back into trunk at some
point. That is important, no commit should get lost.
Currently, we use a tool called "svnmerge.py" for this task. It can give you a
detailed list of commits that are currently not merged. You can then decide to
either merge a commit or to block it. Commits are blocked when they are not
needed at all in the other branch, like version number changes or workarounds
for bugs that are long fixed in a better way in the branch.
The good thing about svnmerge.py is that it doesn't show blocked commits again
in the list of unmerged commits, only the commits that you really still have
to deal with.
So what we need from Git is:
- A tool/command that lists all unmerged commits from one branch to the other
- A tool/command that lets you block/remove commits from that list
- And of course a way to actually merge the commits, but I heard that Git is
much much better than SVN in that regard
Someone mentioned that feature branches should do the job, but I don't think
this will work. Much of the work we do in the branches are simple bugfixes, so
we wouldn't create a branch for each single bugfix, like you would do for new
Also, that probably just moves the problem around: If I created a branch for
each bugfix, I would then need a list of _branches_ that are not merged yet,
together with a way to block those.
As an example of the list of unmerged commits that svnmerge.py creates, see
http://www.kdab.com/~thomas/avail/avail_kdepim-trunk_e4_lastest. That shows
all commits I need to merge from the enterprise4 branch to trunk.
As in example in this list, see commit r1075215 ("Update Newslog.txt"), that
is a commit which will get blocked, since the changelog is only specific to
the enterprise4 branch and not needed in trunk.
Once the commit is blocked, it will not show up in the avail list again.
For even more info, see http://techbase.kde.org/Development/Tools/svnmerge.py.
I hope I could shed a bit of light on the KDEPIM side of things.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20100116/5ab3c9b2/attachment.sig
More information about the Kde-scm-interest