Thanks for proposing this Gianmarco.

One objection I have is that instead of rebasing commits on top of the
master branch, we should actually have a merge commit.

I don't think this "dirties" the history. On the contrary I think the
flow is clearer if you actually have a merge commit. Indeed, it groups
possibly multiple commits from a patch into a single unit that can
clearly be demarcated. To ensure this we merge using "git merge
--no-ff" (no fast-forward)
My recommendation is that the branch that is merged is named after the
jira. This makes it very easy to match the code change with the
discussion on the issue/feature.

In image, I'd like to use the "github workflow" as described here:
http://blog.endpoint.com/2014/05/git-workflows-that-work.html

What do you think?


Other minor comments:
- In my case I find it more natural to have "origin" pointing to the
apache repo (= source of truth), but anyone can set this as they wish.
- "Once I get a +1 on the branch, I can simply merge it on the apache
branch and push it to the apache git repo. [not entirely sure about
this part, butI think it should work]" --> that's also my
understanding, we'll check that soon :)


Matthieu

On Tue, Jan 27, 2015 at 10:54 AM, Gianmarco De Francisci Morales
<[email protected]> wrote:
> Hi,
>
> I want to share the git setup I am using to develop for SAMOA.
> I think this is a good setup but maybe you guys have better ideas.
>
> I have 2 remotes, one of the my fork on github (origin) and one of the
> apache git repo (apache).
> This is similar to the upstream/origin setup in typical github forks.
> However, afaik there will be no automatic merging of pull requests so we
> need to push them manually.
>
> ~/workspace/samoa-incubator ±[master✓] → git remote -v
> origin [email protected]:gdfm/incubator-samoa.git (fetch)
> origin [email protected]:gdfm/incubator-samoa.git (push)
> apache https://git-wip-us.apache.org/repos/asf/incubator-samoa.git (fetch)
> apache https://git-wip-us.apache.org/repos/asf/incubator-samoa.git (push)
>
>
> Then I have 2 branches (3 if you consider the website), one for each remote.
>
> ~/workspace/samoa-incubator ±[master✓] → git br -v
>   apache   787864b Initial import. Migrating code from
> https://github.com/yahoo/samoa/
>   gh-pages 061dd9e Initial import of the website
> * master   787864b Initial import. Migrating code from
> https://github.com/yahoo/samoa/
>
> The master will simply track changes in the mirror.
> On the master branch I executed
> 'git config branch.master.rebase true'
> so that when I do 'git pull' it will rebase rather than merge (and avoid
> dirtying the history with merge commits).
>
> For each Jira I want to work on, I will fork a branch off master, and then
> issue a pull request on github when done.
> Once I get a +1 on the branch, I can simply merge it on the apache branch
> and push it to the apache git repo. [not entirely sure about this part, but
> I think it should work]
> I guess the same can be done for pull requests made by other contributors:
> just create a branch, fetch the pull request, and merge it on the apache
> branch before pushing.
>
> Please let me know if you have any comment.
>
> Cheers,
> --
> Gianmarco

Reply via email to