Subject: Re: 1 patch to two branches

From: Neal Kreitzinger <[email-masked]>
Date: Sun, 06 Mar 2011 18:56:21 -0600

On 3/3/2011 6:46 AM, allstars wrote:
> my case is as follows
> I have two branches
> basically they are the same, except they differ from different package
> name(java) and namespace(cpp) due to customer request
>
> but now I have a fix , say a patch
> I want to commit it to both branches
>
> but I am lazy so I just want to do just one 'git commit' and 'git
> push'
>
> so I am thinking using a githook in remote server
> and each commit to branch A can also commit to branch B as well
>
> but I am not quite sure what I should use in the hook
>
> git rebase , git merge or git cherry pick ?
>
> seems these 3 ways all lead to the same result
> but I dont know which is better and why

if by "patch" you mean git-am/git-apply then I'm afraid i don't have any 
suggestions because i don't use those commands.  However, if you use 
git-push then have you thought about having a script on the local side 
that does something like this:

$ git checkout java-branch
(hack hack)
$ git add .
$ git commit
$ bash -v myscript  <--run your script
#!/bin/sh
# script to commit java-branch head to cpp-branch and push them both
git checkout cpp-branch &&
wait
git cherry-pick java-branch &&
wait
git push origin HEAD &&
wait
git checkout java-branch &&
wait
git push origin HEAD &&
wait
exit 0

of course, you need some error checking in there.  this is predicated on 
the assumption that the cherry-pick will not get any conflicts.  if it 
does get conflicts then you will have to resolve them manually and that 
is a big reason to do this on the local side instead of the remote side.

v/r,
neal