[Kde-scm-interest] Git roadmap
Johannes Sixt
j.sixt at eudaptics.com
Wed Sep 19 08:44:05 CEST 2007
Thiago Macieira schrieb:
> Johannes Sixt wrote:
>> You can also view the public repositories as playground. Let everyone
>> and his dog push to them, and the "lieutenants" pick the cherries from
>> there.
>
> Agreed. The public/free for all repositories will have an enormous amount
> of branches.
>
> But I am not sure it fits exactly our culture if we restrict each person
> to his own branches.
I do understand that this culture (every change is immediately visible to
others) is an advantage if we are looking at bug fixes that are committed by
people who know what they do.
But let's look at a different soft of changes, like API adaptations that
require cross-module changes. Today, any enthusiast is able to change an API
somewhere in kdelibs and probably make corresponding adaptations in his
favorite module, but forget about other modules. If our enthusiast does not
cooperate *right away*, someone else has to step in an fight the fire,
*right away* otherwise many other developers suffer.
Or look at these commit messages of the kind "Fix foo." (Huh? What was the
problem?) and in the next revision "Gaah - forgot to add these files", and
the next one "Remove accidentally committed debugging printfs". Isn't this
disgusting?
Here I must admit that IMHO this culture needs a change to the better, and
git is the tool that allows that change. Since cherry-picking and selective
merging of branches is so easy with git, it's only a small step to enforce
peer review.
> Taking a concrete example: dashbot reported a few days ago that
> extragear/libs/libksane wasn't compiling because it was using
> variable-length arrays. I thought it was an easy fix, so I went ahead and
> replaced all uses with QVarLengthArray. Then I pushed my fixes (git svn
> dcommit, actually).
>
> If I were confined to a branch called thiago/something, dashbot would not
> see my fix and would keep on complaining until the libksane maintainer
> merged my fixes. Thankfully he's active, but what if he had just gone on
> vacations for two weeks? Should I wait three days and then escalate to
> the extragear-libs maintainer?
That's an excellent example, thank you!
Why do you think that dashbot would not see your changes? You would have
published them in the public repository anyway. I'd even go as far as to say
that *before* you ask the libksane maintainer to pull your fix, you ask
dashbot to pull them and act as the peer reviewer.
That's the whole point of git: It doesn't matter whether the changes
originate from your private area or from the official repository - it's
identical.
> That's why I think everyone should have access to "master" on the public
> repository and other "public" branches.
And I just illustrated a workflow that doesn't make this necessary, and that
will even increase the overall quality of the code base: because you can
have peer review easily and early and push only acknowledged changes upstream.
-- Hannes
More information about the Kde-scm-interest
mailing list