Subject: Re: Maintaining a fork workflows

From: Michael Poole <[email-masked]>
Date: Fri, 12 Feb 2010 07:37:31 -0500

Christos Trochalakis writes:

> Hello, I have created a light fork of an upstream project and I am not
> quite sure which "syncing with upstream" workflow fits better.
>
> I can think of 3 solutions
> 1. the obvious one, merge the upstream changes on the forked branch
> and make the necessary modifications on the merge commit
> 2. Rebase upstream commits on top of the fork & make a commit with the
> necessary modifications
> 3. Cherrypick & modify upstream commits
>
> Which practice is considered better?

I would recommend #1 if you expect other people to base work on your
tree, and #2 if you don't.  #1 preserves both tree's histories, rather
than occasionally rewriting your tree's history like #2 does.  #3 at
best hides the relationship between the upstream history and the
cherry-picked commits, which is why it isn't a serious contender to me.

Michael Poole