Re: problem with git-pull

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Wed, 13 Sep 2023 21:40:57 UTC
Matthias Apitz <guru@unixarea.de> writes:

> I wrote yesterday:
>
>> El día martes, septiembre 12, 2023 a las 05:42:45p. m. +0200, Christoph Moench-Tegeder escribió:
>> 
>> > ## Matthias Apitz (guru@unixarea.de):
>> > 
>> > > but when I now say 'git pull .' it says only:
>> > 
>> > Drop the ".", because:
>> > 1. the first non-option to "git pull" is the repository, so you're
>> >    pulling from the current directory, which makes no sense for your
>> >    case.
>> > 2. git updates the whole repository, which is a good thing[tm] (yes,
>> >    there are ways and means, but in gereral one wants to keep a repo
>> >    consistent).
>> 
>> Thanks! I'm coming from a CVS and SVN background where updating only
>> sub-trees is possible (and with good intention also normal).
>> Without the "." it updated the full tree and I built successful the one
>> package in question with poudriere.
>> 
>
> This was wrong. It didn't compiled anything at all, because I updated
> the wrong /usr/ports tree, not the one poudriere was using. When I realized
> my fault, I updated with 'git pull' the correct tree and restarted
> poudriere to only compile one port (security/wpa_supplicant).
> The result was, that poudriere detected the (massive) changes, deleted
> and recompiled around 10 ports and at the end successfully
> security/wpa_supplicant. I don't want to imagine a more massive
> recompilation due to changes in infrastructure ports.
>
> In short: Is there no way with git to pull only one special port
> for a recompilation?

There are but not officially[1] supported by ports/ e.g.,

$ rm -rf security/wpa_supplicant
$ git checkout origin/main security/wpa_supplicant
$ git commit -m '[local] security/wpa_supplicant: sync with "main" branch'

or

$ git rev-list --reverse ..origin/main security/wpa_supplicant | xargs git cherry-pick -x

--
[1] All types of partial upgrades are under "doing it at your own risk".
    Neither portmgr@ nor any port maintainer are expected to help.

    To speed up build use poudriere-devel with -b flag to prefetch
    packages and rollback the whole ports/ to a matching revision e.g.,

    https://pkg-status.freebsd.org/?all=1&type=package&jailname=132amd64