Re: Rebasing local patches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Sat, 7 Mar 2009, Nicolas Morey-Chaisemartin wrote:

> On one of our project, we depend on an external source which uses git. 
> On our side of the project, we create some patches (this part is not the 
> problem), but only some of them are intended to be pushed (ie pulled by) 
> the external source. So basically, we have a set of patches on local 
> branch that we rebase every so and then against master to keep our 
> version up-to-date with the external one.
> 
> Is this the right way to do it?

Looks sane.

> Then, internally we have a centralized repository and many personal 
> ones. When the need to go to the next version, one of the developper 
> rebases the company patches branch afaisnt master and push it into the 
> centralized repo.
>
> What is the best way for the other developpers to get up-to-date with 
> the rebased branch?
>
> git pull --rebase seems to me like a good way to keep local modifications.

Indeed.

You could also work from release branches, i.e. whenever you rebase your 
company-specific changes onto the upstream, you could start a new branch.

Or even better: you could "merge -s ours" the pre-rebase commit.  The 
history would then look something like this:

           new UPSTREAM - A' - B' - C' - M
                                        /
old UPSTREAM - A - B - C --------------'

The ' commits are the rewritten versions of the original company-specific 
ones, made by the rebase.

If you do it that way, not only will you not lose the history of your 
project, but your users can happily continue to merge instead of having to 
rebase.

> I noticed that when the branch was rebased on the centralized and repo 
> and origin/our_patches is up-to-date in mine.
>
> If I checkout another branch and then ckecout our_branches, I got a 
> message telling my our_patches and the one from the server have diverged 
> (or you are two commits behind...).
>
> How can you get this info directly without leaving/rejoining your 
> branch?

It is also part of "git status"' output.

Ciao,
Dscho

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux