[Kde-pim] Git and the needs of KDE PIM
Stephen Kelly
steveire at gmail.com
Tue Jan 12 19:54:14 GMT 2010
Hi,
At the recent kde pim osnabrueck meeting we discussed the upcoming switch to
git and how it affects kdepim.
I've rad through the wiki page and didn't see anything about it, so that
means you don't know why git might not be an option for kde pim today, as I
understand it.
http://techbase.kde.org/Projects/MovetoGit
We do want to move to git with the rest of kde, but we're not certain how
git can be a replacement for svn and the way it is currently used to manage
branches. Hopefully you can help us understand what needs to be done to make
this happen.
kdepim has several active branches which regularly have patches merged
between them. These are mainly the enterprise branches. Additionally, when
doing merges, some individual commits are permanently blocked so that they
are not merged into the main KDE stable branch with the rest when merged
from one of the enterprise branches. Usually the reason for this is a new
string added in the enterprise branch which can not be merged into the
stable 4.x branch. This is managed by using svn properties.
If you need to know more about this stuff, hopefully Thomas McGuire can
answer any questions.
As git can not do merges between different repos, we would need to have all
of the branches in the same git repo possibly including all history from kde
3.5. (Is it planned anyway to have all history in each module repo? That's
not in the techbase page).
The "blocked" commits issue poses bigger problems I think. My knowledge of
the internals of git is not strong, but I don't think it would be possible
to identify commits to keep only in one branch and not merge with the rest.
One option is rebasing, but I don't think git push --force will be allowed
on the gitorious repos.
Another option is cherry picking commits between the branches. I'm not sure
if that would scale. Yet another option is that it might be possible to use
git properties with a custom git command to read the properties and ignore
certain commits and cherry pick the rest. If this works it has the
disadvantage that anyone doing a merge would need to use the own-merge
command instead of the regular git merge command. Another disadvantage would
be that there is not record afaik in a cherry picked commit about where it
came from.
This might all just be a solved problem in git in general, I'm not sure, but
if you know please let us know. Maybe something like
// Merge from before the blocked commit up to the blocked commit into 4.4
git merge blockedcommit^ kde4.4
// Merge from after the blocked commit up to HEAD into 4.4
git merge blockedcommit+1 kde4.4
or
// Merge from after one blocked commit upto another blocked commit into 4.4
git merge blockedcommit+1 anotherblockedcommit^ kde4.4
Does something like this already work?
All the best,
Steve.
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list