{"thread":{"id":"22626","subject":"Maintaining a fork workflows","startedAt":"2010-02-12T09:23:44Z","lastAt":"2010-02-12T12:37:31Z","messageCount":2,"participants":["Christos Trochalakis","Michael Poole"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"134307","messageId":"f7b87f7c1002120123t376f3f14ma3f3bcb21ae2836@mail.gmail.com","threadId":"22626","inReplyTo":null,"subject":"Maintaining a fork workflows","fromName":"Christos Trochalakis","fromEmail":"yatiohi@ideopolis.gr","sentAt":"2010-02-12T09:23:44Z","receivedAt":"2010-02-12T09:23:44Z","isPatch":false,"sender":{"key":"yatiohi@ideopolis.gr","avatar":"https://gravatar.com/avatar/0a2086bcb916d6c7d3aab6edf1b697bc54d8f376d79d73b6deb96db048f7c64a?d=mp&s=160"},"body":"Hello, I have created a light fork of an upstream project and I am not\nquite sure which \"syncing with upstream\" workflow fits better.\n\nI can think of 3 solutions\n1. the obvious one, merge the upstream changes on the forked branch\nand make the necessary modifications on the merge commit\n2. Rebase upstream commits on top of the fork & make a commit with the\nnecessary modifications\n3. Cherrypick & modify upstream commits\n\nWhich practice is considered better?\n\nthanks,\nchris\n"},{"id":"134329","messageId":"87k4uid3zo.fsf@troilus.org","threadId":"22626","inReplyTo":"f7b87f7c1002120123t376f3f14ma3f3bcb21ae2836@mail.gmail.com","subject":"Re: Maintaining a fork workflows","fromName":"Michael Poole","fromEmail":"mdpoole@troilus.org","sentAt":"2010-02-12T12:37:31Z","receivedAt":"2010-02-12T12:37:31Z","isPatch":false,"sender":{"key":"mdpoole@troilus.org","avatar":null},"body":"Christos Trochalakis writes:\n\n> Hello, I have created a light fork of an upstream project and I am not\n> quite sure which \"syncing with upstream\" workflow fits better.\n>\n> I can think of 3 solutions\n> 1. the obvious one, merge the upstream changes on the forked branch\n> and make the necessary modifications on the merge commit\n> 2. Rebase upstream commits on top of the fork & make a commit with the\n> necessary modifications\n> 3. Cherrypick & modify upstream commits\n>\n> Which practice is considered better?\n\nI would recommend #1 if you expect other people to base work on your\ntree, and #2 if you don't.  #1 preserves both tree's histories, rather\nthan occasionally rewriting your tree's history like #2 does.  #3 at\nbest hides the relationship between the upstream history and the\ncherry-picked commits, which is why it isn't a serious contender to me.\n\nMichael Poole\n"}]}