[U-Boot] Attn Maintainers: git advise needed (how to fix messed up repo)

Mike Frysinger vapier at gentoo.org
Tue Nov 29 00:43:12 CET 2011


On Monday 28 November 2011 18:20:51 Graeme Russ wrote:
> On Tue, Nov 29, 2011 at 10:16 AM, Andy Fleming wrote:
> > On Mon, Nov 28, 2011 at 5:13 PM, Mike Frysinger wrote:
> >> On Monday 28 November 2011 18:05:00 Graeme Russ wrote:
> >>> On Tue, Nov 29, 2011 at 10:02 AM, Mike Frysinger wrote:
> >>> > On Monday 28 November 2011 17:31:19 Graeme Russ wrote:
> >>> >> $ git fetch u-boot
> >>> >> ...
> >>> >> $ git rebase u-boot/master
> >>> >> ...
> >>> >> $ git push ssh://gu-x86@git.denx.de/u-boot-x86
> >>> >> ...
> >>> >> To ssh://gu-x86@git.denx.de/u-boot-x86
> >>> >>  ! [rejected]        master -> master (non-fast-forward)
> >>> > 
> >>> > well, you did a rebase, so this is kind of par for the course.  use
> >>> > --force to rewrite the published branch.
> >>> 
> >>> So how do you keep the sub-repo up-to-date with u-boot/master without
> >>> doing forced pushes?
> >> 
> >> you don't :).  the way *i* work is to keep my changes in my own branch
> >> that i rewrite, and then once i want to send that to Wolfgang, i
> >> publish the updated master branch for him to pull from.
> >> 
> >> i think the u-boot wiki has a "suggested maintainer workflow", but i
> >> haven't looked too hard at that as i like (logically) how i do things
> >> now.
> > 
> > Yes, I only push up changes that I don't intend will ever be changed.
> 
> Well, that is my intent too :)

you can never rebase+publish that branch then

> > Unless I forget.
> > 
> > If your tree contains changes that aren't yet in Wolfgang's tree, but
> > *are* published in your upstream tree, then you can try:
> > 
> > git merge u-boot/master.
> 
> So is that in lieu of rebase?

yes, if you want to get updates from mainline before asking Wolfgang to do a 
pull request on your branch

note: you don't have to publish the merge/rebasing work.  let's say you have 3 
patches in your x86 master (published).  locally, you get Wolfgang's updated 
master, verify things still work, and then send a pull request for the already 
published branch (not for your local work which includes a merge commit).  
once Wolfgang pulls & pushes that update, you can fetch Wolfgang's master and 
then rebase on top of that.  in this case, the only thing being thrown away is 
your local merge commits because Wolfgang included your other changes.

this can be a bit confusing as it delves deeply into distributed scm 
subtleties, so if you want, i can clarify points from above ...
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111128/efb14f02/attachment.pgp>


More information about the U-Boot mailing list