Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Oct 2021 08:18:32 +0200
From:      FreeBSD User <freebsd@walstatt-de.de>
To:        Warner Losh <imp@bsdimp.com>
Cc:        FreeBSD CURRENT <freebsd-current@freebsd.org>
Subject:   Re: git: "overlay" of own remote-branch on official freebsd-ports repo
Message-ID:  <20211013081832.299a1b06@freyja>
In-Reply-To: <CANCZdfri3j1xmFTEA2fXjW-JawRExPTx7ykZeGJv5MFBhii-zQ@mail.gmail.com>
References:  <20211012173148.1d2f138c@hermann.fritz.box> <CANCZdfri3j1xmFTEA2fXjW-JawRExPTx7ykZeGJv5MFBhii-zQ@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

On Tue, 12 Oct 2021 10:01:00 -0600
Warner Losh <imp@bsdimp.com> wrote:

> On Tue, Oct 12, 2021 at 9:32 AM FreeBSD User <freebsd@walstatt-de.de> wrote:
> 
> > I do not know whether I'm right in this list, but since the subject is
> > mutual so common
> > in development and GIT, I have the strong feeling I'm right here.
> >
> > Im quite new to git, so apologizes for any inconvenience reading my
> > question.
> >
> > Using poudriere on 14-CURRENT to create a selection of packages also
> > includes updating
> > the ports tree on a regular basis. I maintain some "special" ports not
> > official part of
> > the FreeBSD ports tree and some other ports are part of those I'm supposed
> > to maintain. I
> > keep personally track of the changes in a git repo of my own.
> >
> > Now I'd like to "overlay" the official portas repo by that of mine to
> > include changes.
> > With SVN, there was no problem to have local changes not overwritten by
> > regular updates
> > of the ports tree as long as the specific port in question wasn't updated
> > by the official
> > site. In git, this behaviour seems to have changed, any changes I made so
> > far are gone
> > after poudriere is adviced to update the tree.
> >
> > I'd like to ask how FreeBSD developers and maintainers do the trick. If
> > there is an
> > official cookbook fpr maintainers (I haven't found it yet ...), please be
> > so kind and
> > refer to it. Any advice is welcome.
> >  
> 
> tl;dr: branches are cheap and well supported in git. You just make a branch
> for your
> local changes, and update that however you see fit.
> 
> For ports I have like that, I've just created a branch in git. I rebase the
> branch forward
> each time I update. For me, though, the branch is mostly uncommitted in
> upstream
> changes that may not be ready for some reason... There's two ways to do
> this.
> You can just merge, which is OK if you aren't upstreaming the changes, or
> you can
> rebase if the changes or a subset of the changes likely will end up in
> FreeBSD.
> 
> Others might recommend stash, but I find it too unwieldy for more than a
> couple
> of things.
> 
> So the workflow would be:
> 
> git clone -o freebsd <freebsd-ports-repo-of-choice> freebsd-ports
> cd freebsd-ports
> git checkout -b hartmann-specials
> <copy over your special ports or changes to ports and commit them>
> 
> Now, you can use poudriere-ports with the -B hartmann-specials and your
> local repo as the source of truth.
> 
> to update
> 
> cd freebsd-ports
> git checkout main
> git pull --rebase                              # or --ff-only, I use
> --rebase because I push and it's habit
> git rebase -i main hartmann-specials
> 
> Note: if you need to have multiple trees with this branch you are modifying,
> then a git pull --rebase will let you cope with the forced-pushes this
> method
> would require. You can also do it with git merge on hartmann-specials if you
> don't need to keep the changes separate or you have a lot of downstreams
> that would get cranky, which doesn't sound like the case here.
> 
> Warner

As I wrote, I'm quite new to git and always surprised. Thanks for the help and
the neat tip. I'll try.

Kind regards and thanks,

Oliver


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20211013081832.299a1b06>