Matthias Apitz <[email protected]> writes:
> I wrote yesterday:
>
>> El día martes, septiembre 12, 2023 a las 05:42:45p. m. +0200, Christoph
>> Moench-Tegeder escribió:
>>
>> > ## Matthias Apitz ([email protected]):
>> >
>> > > 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