[haiku-inc] Re: Fwd: Re: Haiku and GSoC 2016

  • From: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
  • To: haiku-inc@xxxxxxxxxxxxx
  • Date: Wed, 23 Mar 2016 07:11:10 +0100

On Tue, Mar 22, 2016 at 03:56:35PM -0700, Urias McCullough wrote:

FWIW, Github makes it ridiculously easy to "fork" an entire repository
and work on it in parallel similar to a "branch". With Github, you can
also submit pull requests and solicit feedback on all your commits.
Unfortunately, due to technical reasons, we are unable to use the
Github repository as a "master", and thus, we cannot currently accept
pull requests through its interface. This is how many projects work,
and it is very successful. I think it would be powerful to find a way
to either mimic this behavior, or solve the technical issues with
Github.

We do'nt need github or anything similar to do this. Actually, I find it
more convenient if someone gives me a link to the github branch they
work on, to "git clone" it on my local compulter and review them with my
own and usual tools, rather than a web interface.

git was designed with this in mind precisely, for the Linux kernel
(which also doesn't use github pull requests). It is very easy to merge
the work from a git branch, and it is also very easy, if the author of
the branch wants to work that way, to extract a series of patches from a
branch for attachment to our bug tracker.

To provide a little more context from the developers point of voew on
why we don't go with github: the first problem is that we want our
hosting to be in our control. We've had enough problem with SourceForge
then BerliOS in their times, and found out we do better at managing our
git repo ourselves. The second problem is that the github flow with pull
requests generates a lot of "merge commits" (just have a look at the
haikuports repository history to see what I mean). Having a clean git
history is as important as having a clean codebase for us, so we don't
want these "merge commits" to creep in.


This would allow "outsiders" to easily submit their code for review
and inclusion without having to create patches and attach them to
tickets, etc. One of the things I personally hoped we'd gain by moving
to Git for our SCM was the ability to more easily involve "outsiders"
in the development process.

You don't need github pull requests to do this. People only have to put
their repo somewhere (which can be github if they want to, but also
another place if they prefer so), and give us a link. No need for
manually extracting patches. It's then quite easy to merge the changes:

git remote add "them" "url-to-their-repo"
git fetch "them"
git merge "them/name-of-their-branch" # Or checkout + rebase to avoid
                                      # merge commits
git push
# There, the changes are merged!

What's missing there would be a tool like Gerrit to do code reviews
before merging, so we would have to do those "manually" by e-mail as we
always did until now. I've been trying to push Haiku for setting up
Gerrit since the release of Alpha3 (where I was coordinator and had to
do a lot of merging). Nothing happened so far.

TL/DR: merging work from someone working in their own branch is a
technical non-issue, and github does not help us (bitrotting pull
requests are a possibility as well).

-- 
Adrien.

Other related posts: