Gentoo Archives: gentoo-dev

From: Kent Fredric <kentfredric@×××××.com>
To: gentoo-dev@l.g.o
Cc: Nicolas Sebrecht <nsebrecht@×××××.fr>
Subject: Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver
Date: Fri, 01 Jun 2012 15:57:46
In Reply to: Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver by Rich Freeman
On 2 June 2012 03:39, Rich Freeman <rich0@g.o> wrote:
> On Fri, Jun 1, 2012 at 9:25 AM, Nicolas Sebrecht <nsebrecht@×××××.fr> wrote: >> So, like explained before your concern is clearly out of the current >> discussion. Importing commit history from Overlays is not supported and >> will probably never be. Gentoo doesn't forces (and doesn't want to) >> overlays maintainers to use Git. > > I'm not sure that git even supports this, unless the overlay is a > complete clone of the entire gentoo-x86.git repository. > > I think the way git operations work is by finding common parents in > the history of two heads, and then moving forward from there.  If you > have two completely different repositories then they never will have a > common parent.
You can however merge dissimilar histories with no common parents if you know what you're doing. It does warn you, but it still lets you do it.
> Plus, even if it did work, to rebase the overlay on the gentoo-x86 > repository you'd have to import the full gentoo-x86 tree into it. > Then you'd have to push EVERYTHING in your overlay into gentoo-x86.  I > don't think you can just push individual files from one tree to > another.
Yeah, selectively pulling in files with histories however is hard, I've occasionally been fussed enough to create temporary copies of branches, and then iterate over their history so the history is reduced to changes only for a small selection of files, but its largely lots of work, and I can't remember how to do it every time I go to do it -_- Its reasonably straight forward to cherry-pick commits in though.
> From what I've seen the various methods out there which do involve > moving only part of one branch into another basically involve a LOT of > history manipulation or are really no different than just copying the > files into the branch and adding them, losing all history in the > process. > > I'm not sure how important all that history preservation actually is - > the overlay would still possess it.  If we did want to preserve it > then the only practical option I see is to have the overlay start out > as a clone of gentoo-x86 and keep around all the non-overlay packages, > which then means that anybody using the overlay will get all those old > gentoo-x86 packages as part of their portage tree.  Plus you still > have the rebase+gpg-signatures=fail issue. > > Rich >
Myself, I'd be inclined to do something like this: 1. Have an integration branch on gx86 2. Select a package or packages to migrate to gx86 from an overlay 3. create a branch in the overlay that only contains the history with regard to those packages. 4. copy the branch to a local checkout of gx86, and then rebase it on top of the integration branch 5. then delete it from the overlay. But the exact part of "Create a branch that contains only the history of those packages" is the part I need to get down to an art . -- Kent perl -e  "print substr( \"edrgmaM  SPA NOcomil.ic\\@tfrken\", \$_ * 3, 3 ) for ( 9,8,0,7,1,6,5,4,3,2 );"


Subject Author
Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver "W. Trevor King" <wking@×××××××.us>