* [gentoo-dev] Current portage will now truncate your repo's git history to 1
@ 2022-12-15 19:22 Florian Schmaus
2022-12-15 19:56 ` [gentoo-dev] " Florian Schmaus
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Florian Schmaus @ 2022-12-15 19:22 UTC (permalink / raw
To: gentoo-dev
This is a public service announcement that the recently stabilized
portage version will truncate you repo's git history to 1.
While this is a good thing for the majority of Gentoo users, it affects
developers that develop in a git known to portage (like me). If I
understand the portage maintainers vision correctly, then future portage
will assume full control over its configured repositories and
potentially perform destructive operations on them, for example "git
clean" [1].
I personally would prefer portage simply adjusting its behavior based on
the owner of the repository. That is, if it's the 'portage' user then
assume full control, and if it is a different user, then fall back to a
preserving, conservative mode of operation. Unfortunately, for me, this
idea was received skeptically at best in a recent discussion in
#gentoo-portage.
So this is a heads up for fellow developers using a similar workflow
like me, that they are probably required to change their workflow to use
PORTDIR_OVERLAY and multiple repositories on their system: a
system-wide, managed by portage, and a dev repository (in your HOME),
scoped in via PORTDIR_OVERLAY.
As everyone knows, there is nothing better than to change the workflow
that has served you well over multiple years. But apparently the
PORTDIR_OVERLAY approach works well for others, so I am confident that I
(and others) will be able to make the transition with a minimal amount
of ranting. ;)
- Flow
1: https://github.com/gentoo/portage/pull/939
^ permalink raw reply [flat|nested] 13+ messages in thread
* [gentoo-dev] Re: Current portage will now truncate your repo's git history to 1
2022-12-15 19:22 [gentoo-dev] Current portage will now truncate your repo's git history to 1 Florian Schmaus
@ 2022-12-15 19:56 ` Florian Schmaus
2022-12-15 20:10 ` [gentoo-dev] " Toralf Förster
2022-12-17 5:42 ` [gentoo-dev] " Sam James
2 siblings, 0 replies; 13+ messages in thread
From: Florian Schmaus @ 2022-12-15 19:56 UTC (permalink / raw
To: gentoo-dev
On 15/12/2022 20.22, Florian Schmaus wrote:
> As everyone knows, there is nothing better than to change the workflow
> that has served you well over multiple years. But apparently the
> PORTDIR_OVERLAY approach works well for others, so I am confident that I
> (and others) will be able to make the transition with a minimal amount
> of ranting. ;)
As it was pointed out that some consider my wording here inappropriate
and/or rude, I want to apologize to everyone who was offended by the
prior paragraph. I had
https://xkcd.com/1172/
in mind when writing it.
I was also criticized for not providing a rationale for the behavior
change in portage. The motivation is driven by the noble goal to make
portage more user friendly and robust. Which I fully support. Just like
I support shallow clones per default. I just believe portage should do a
better job figuring out if it potentially messes with a "user-owned"
repository and adjust its behavior accordingly. In a similar spirit I
submitted https://github.com/gentoo/portage/pull/960
- Flow
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-15 19:22 [gentoo-dev] Current portage will now truncate your repo's git history to 1 Florian Schmaus
2022-12-15 19:56 ` [gentoo-dev] " Florian Schmaus
@ 2022-12-15 20:10 ` Toralf Förster
2022-12-15 20:40 ` Florian Schmaus
2022-12-17 5:42 ` [gentoo-dev] " Sam James
2 siblings, 1 reply; 13+ messages in thread
From: Toralf Förster @ 2022-12-15 20:10 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1.1: Type: text/plain, Size: 751 bytes --]
On 12/15/22 20:22, Florian Schmaus wrote:
> o use PORTDIR_OVERLAY and multiple repositories on their system: a
> system-wide, managed by portage, and a dev repository (in your HOME),
> scoped in via PORTDIR_OVERLAY.
Isn't this covered by /etc/portage/repos.conf/*
eg here's my config:
cat /etc/portage/repos.conf/all.conf
[DEFAULT]
main-repo = gentoo
[gentoo]
location = /var/db/repos/gentoo
auto-sync = yes
sync-type = git
sync-uri = https://github.com/gentoo-mirror/gentoo.git
#sync-git-verify-commit-signature = true
priority = 10
[local]
location = /var/db/repos/local
auto-sync = no
priority = 99
[tgro]
location = /var/db/repos/tgro
auto-sync = no
priority = 90
--
Toralf
PGP 23217DA7 9B888F45
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-15 20:10 ` [gentoo-dev] " Toralf Förster
@ 2022-12-15 20:40 ` Florian Schmaus
2022-12-16 1:08 ` [gentoo-dev] " Duncan
0 siblings, 1 reply; 13+ messages in thread
From: Florian Schmaus @ 2022-12-15 20:40 UTC (permalink / raw
To: gentoo-dev
On 15/12/2022 21.10, Toralf Förster wrote:
> On 12/15/22 20:22, Florian Schmaus wrote:
>> o use PORTDIR_OVERLAY and multiple repositories on their system: a
>> system-wide, managed by portage, and a dev repository (in your HOME),
>> scoped in via PORTDIR_OVERLAY.
>
> Isn't this covered by /etc/portage/repos.conf/*
Absolutely, but this requires a manual intervention from the user. And,
of course, you can totally opt-out from portage managing (syncing) the
repository, but then you have to take care of syncing yourself.
The point is that with the new portage release, portage's behavior
changes. And I would argue that portage should not, in its effort to
become more user friendly, disregard ebuild-developer friendliness.
Assuming it is achievable with a reasonable amount of additional code
complexity.
- Flow
^ permalink raw reply [flat|nested] 13+ messages in thread
* [gentoo-dev] Re: Current portage will now truncate your repo's git history to 1
2022-12-15 20:40 ` Florian Schmaus
@ 2022-12-16 1:08 ` Duncan
2022-12-17 4:01 ` Brian Evans
0 siblings, 1 reply; 13+ messages in thread
From: Duncan @ 2022-12-16 1:08 UTC (permalink / raw
To: gentoo-dev
Florian Schmaus posted on Thu, 15 Dec 2022 21:40:19 +0100 as excerpted:
> On 15/12/2022 21.10, Toralf Förster wrote:
>> On 12/15/22 20:22, Florian Schmaus wrote:
>>> o use PORTDIR_OVERLAY and multiple repositories on their system: a
>>> system-wide, managed by portage, and a dev repository (in your HOME),
>>> scoped in via PORTDIR_OVERLAY.
>>
>> Isn't this covered by /etc/portage/repos.conf/*
>
> Absolutely, but this requires a manual intervention from the user. And,
> of course, you can totally opt-out from portage managing (syncing) the
> repository, but then you have to take care of syncing yourself.
>
> The point is that with the new portage release, portage's behavior
> changes. And I would argue that portage should not, in its effort to
> become more user friendly, disregard ebuild-developer friendliness.
> Assuming it is achievable with a reasonable amount of additional code
> complexity.
This bit me too, and making things worse, the truncate killed the git
history that presumably had the answer I needed to fix it up.
=:^( Fortunately I had a bit of a clue due to preemptively following the
portage changelog where I had seen a hint, so I was able to dig it up
again without the git log help that's definitely now my first instinct.
Long story short and for the record, manual intervention indeed and I wish
it had at least come with a news item, but here's the magic that fixed it
for me.
I had one of these previously, IIRC clone depth, but both are now needed.
I put these in the [DEFAULT] section here because I run several overlays
and I "want" access to proper git logs and history by default. (FWIW
"want" is the polite, cooled down, version; the situation was considerably
more sweary when I lost that history and instinctively I tried to look in
the git history for why, but of course it was GONE!)
repos.conf, [DEFAULT] (or [gentoo]) section:
clone-depth = 0
sync-depth = 0
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Re: Current portage will now truncate your repo's git history to 1
2022-12-16 1:08 ` [gentoo-dev] " Duncan
@ 2022-12-17 4:01 ` Brian Evans
2022-12-18 1:52 ` John Helmert III
0 siblings, 1 reply; 13+ messages in thread
From: Brian Evans @ 2022-12-17 4:01 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1.1: Type: text/plain, Size: 1646 bytes --]
On 12/15/22 20:08, Duncan wrote:
> Florian Schmaus posted on Thu, 15 Dec 2022 21:40:19 +0100 as excerpted:
>
>> On 15/12/2022 21.10, Toralf Förster wrote:
>>> On 12/15/22 20:22, Florian Schmaus wrote:
>>>> o use PORTDIR_OVERLAY and multiple repositories on their system: a
>>>> system-wide, managed by portage, and a dev repository (in your HOME),
>>>> scoped in via PORTDIR_OVERLAY.
>>>
>>> Isn't this covered by /etc/portage/repos.conf/*
>>
>> Absolutely, but this requires a manual intervention from the user. And,
>> of course, you can totally opt-out from portage managing (syncing) the
>> repository, but then you have to take care of syncing yourself.
>>
>> The point is that with the new portage release, portage's behavior
>> changes. And I would argue that portage should not, in its effort to
>> become more user friendly, disregard ebuild-developer friendliness.
>> Assuming it is achievable with a reasonable amount of additional code
>> complexity.
>
> This bit me too, and making things worse, the truncate killed the git
> history that presumably had the answer I needed to fix it up.
> =:^( Fortunately I had a bit of a clue due to preemptively following the
> portage changelog where I had seen a hint, so I was able to dig it up
> again without the git log help that's definitely now my first instinct.
>
Thankfully, if anyone does accidentally gets shallowed, just executing
'git fetch --unshallow' will revert the default '--depth 1'
I really don't care for that 'git clean' patch. If that makes it in
without a way to opt-out, it will be patched out for me personally.
Brian
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-15 19:22 [gentoo-dev] Current portage will now truncate your repo's git history to 1 Florian Schmaus
2022-12-15 19:56 ` [gentoo-dev] " Florian Schmaus
2022-12-15 20:10 ` [gentoo-dev] " Toralf Förster
@ 2022-12-17 5:42 ` Sam James
2022-12-17 6:14 ` Michael
` (3 more replies)
2 siblings, 4 replies; 13+ messages in thread
From: Sam James @ 2022-12-17 5:42 UTC (permalink / raw
To: gentoo-dev; +Cc: dev-portage
[-- Attachment #1: Type: text/plain, Size: 3328 bytes --]
> On 15 Dec 2022, at 19:22, Florian Schmaus <flow@gentoo.org> wrote:
>
> This is a public service announcement that the recently stabilized portage version will truncate you repo's git history to 1.
I wish you'd shown us in #gentoo-portage before sending this, as it's a bit misleading / alarmist. We were actively all speaking
at the time.
Not only to reconsider the phrasing and include some important details, but also to mention the rationale, which I describe
below.
If you felt the Portage team should've written a news item for it, you were (and still are) free to say so, and we'd
do it.
>
> While this is a good thing for the majority of Gentoo users, it affects developers that develop in a git known to portage (like me). If I understand the portage maintainers vision correctly, then future portage will assume full control over its configured repositories and potentially perform destructive operations on them, for example "git clean" [1].
>
... only for repositories of sync-type=git & auto-sync=yes.
The rationale for this is that most people who use sync-type=git are doing so because they want
a quicker sync (to complete), a more reliable one (no Manifest race condition issues), and to
get changes from Gentoo faster.
Whenever Portage is syncing something, our view was that we should prioritise successful
completion of syncs, especially given it may be performed unattended.
If git is pulling from a CDN, Portage may on one sync receive state X, but
on a subsequent sync receive state X-1. This can cause an odd state
where git wants to resolve conflicts and manual intervention is required.
This situation was often worse with sync-depth=1 and would lead
to orphaned files, hence the 'git clean' PR referenced.
The motivation behind the sync depth part was because of
disk space growing unbounded otherwise.
> I personally would prefer portage simply adjusting its behavior based on the owner of the repository. That is, if it's the 'portage' user then assume full control, and if it is a different user, then fall back to a preserving, conservative mode of operation. Unfortunately, for me, this idea was received skeptically at best in a recent discussion in #gentoo-portage.
This wouldn't work for Prefix and also FEATURES="-usersync".
--
Now, looking forward in a constructive manner, I think we can
make both camps happy here with an option to indicate
If Portage can assume the repository will be touched by something
other than Portage.
I propose a configuration option called 'volatile' (thanks
Arsen for the name suggestion) which indicates that the
repository may be changed outside of Portage by any time,
and hence no destructive operations should be carried out.
If the option is on, it also prohibits some optimisations
which require assuming the integrity of the repository.
I have a draft of these changes at https://github.com/gentoo/portage/pull/961.
(https://github.com/gentoo/portage/pull/961.patch if want to view as a raw patch series.0
I am undecided on whether volatile should be default on or not. In the PR
as it is, it defaults to off, which would require a news item. I may just turn it
on given the tone of this thread, as none of it has been very encouraging
for further work on Portage.
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 358 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-17 5:42 ` [gentoo-dev] " Sam James
@ 2022-12-17 6:14 ` Michael
2022-12-17 6:25 ` Sam James
` (2 subsequent siblings)
3 siblings, 0 replies; 13+ messages in thread
From: Michael @ 2022-12-17 6:14 UTC (permalink / raw
To: gentoo-dev
> The motivation behind the sync depth part was because of
> disk space growing unbounded otherwise.
I recently did `git config --local fetch.prune true` to the repos I
don't develop (user mode).
And that seems to help with the uncontrollable growth.
# grep prune /usr/portage/.git/config -B1
[fetch]
prune = true
Michael
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-17 5:42 ` [gentoo-dev] " Sam James
2022-12-17 6:14 ` Michael
@ 2022-12-17 6:25 ` Sam James
2022-12-18 2:09 ` John Helmert III
2022-12-18 10:19 ` Florian Schmaus
3 siblings, 0 replies; 13+ messages in thread
From: Sam James @ 2022-12-17 6:25 UTC (permalink / raw
To: gentoo-dev; +Cc: dev-portage
[-- Attachment #1: Type: text/plain, Size: 184 bytes --]
> On 17 Dec 2022, at 05:42, Sam James <sam@gentoo.org> wrote:
>>
> ... only for repositories of sync-type=git & auto-sync=yes.
Sorry, of course, the auto sync part doesn't matter.
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 358 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Re: Current portage will now truncate your repo's git history to 1
2022-12-17 4:01 ` Brian Evans
@ 2022-12-18 1:52 ` John Helmert III
0 siblings, 0 replies; 13+ messages in thread
From: John Helmert III @ 2022-12-18 1:52 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 2375 bytes --]
On Fri, Dec 16, 2022 at 11:01:13PM -0500, Brian Evans wrote:
> On 12/15/22 20:08, Duncan wrote:
> > Florian Schmaus posted on Thu, 15 Dec 2022 21:40:19 +0100 as excerpted:
> >
> >> On 15/12/2022 21.10, Toralf Förster wrote:
> >>> On 12/15/22 20:22, Florian Schmaus wrote:
> >>>> o use PORTDIR_OVERLAY and multiple repositories on their system: a
> >>>> system-wide, managed by portage, and a dev repository (in your HOME),
> >>>> scoped in via PORTDIR_OVERLAY.
> >>>
> >>> Isn't this covered by /etc/portage/repos.conf/*
> >>
> >> Absolutely, but this requires a manual intervention from the user. And,
> >> of course, you can totally opt-out from portage managing (syncing) the
> >> repository, but then you have to take care of syncing yourself.
> >>
> >> The point is that with the new portage release, portage's behavior
> >> changes. And I would argue that portage should not, in its effort to
> >> become more user friendly, disregard ebuild-developer friendliness.
> >> Assuming it is achievable with a reasonable amount of additional code
> >> complexity.
> >
> > This bit me too, and making things worse, the truncate killed the git
> > history that presumably had the answer I needed to fix it up.
> > =:^( Fortunately I had a bit of a clue due to preemptively following the
> > portage changelog where I had seen a hint, so I was able to dig it up
> > again without the git log help that's definitely now my first instinct.
> >
>
> Thankfully, if anyone does accidentally gets shallowed, just executing
> 'git fetch --unshallow' will revert the default '--depth 1'
>
> I really don't care for that 'git clean' patch. If that makes it in
> without a way to opt-out, it will be patched out for me personally.
>
> Brian
By "that 'git clean'" patch, do you mean [1]? Why are you speaking as
if you're talking about a 3rd party and not people that are also on
the gentoo-dev mailing list? It seems like the more productive thing
to do would be to at least offer substantive criticism about a
specific PR, maybe even in the PR itself.
While I'm at it: you used to be reachable on IRC, but you never
migrated away from Freenode. Why? It seems like every few days someone
is looking for you only to be surprised that you're not in Gentoo's
IRC community anymore.
[1] https://github.com/gentoo/portage/pull/939
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-17 5:42 ` [gentoo-dev] " Sam James
2022-12-17 6:14 ` Michael
2022-12-17 6:25 ` Sam James
@ 2022-12-18 2:09 ` John Helmert III
2022-12-18 10:19 ` Florian Schmaus
3 siblings, 0 replies; 13+ messages in thread
From: John Helmert III @ 2022-12-18 2:09 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 3867 bytes --]
On Sat, Dec 17, 2022 at 05:42:43AM +0000, Sam James wrote:
>
>
> > On 15 Dec 2022, at 19:22, Florian Schmaus <flow@gentoo.org> wrote:
> >
> > This is a public service announcement that the recently stabilized portage version will truncate you repo's git history to 1.
>
> I wish you'd shown us in #gentoo-portage before sending this, as it's a bit misleading / alarmist. We were actively all speaking
> at the time.
>
> Not only to reconsider the phrasing and include some important details, but also to mention the rationale, which I describe
> below.
>
> If you felt the Portage team should've written a news item for it, you were (and still are) free to say so, and we'd
> do it.
>
> >
> > While this is a good thing for the majority of Gentoo users, it affects developers that develop in a git known to portage (like me). If I understand the portage maintainers vision correctly, then future portage will assume full control over its configured repositories and potentially perform destructive operations on them, for example "git clean" [1].
> >
> ... only for repositories of sync-type=git & auto-sync=yes.
>
> The rationale for this is that most people who use sync-type=git are doing so because they want
> a quicker sync (to complete), a more reliable one (no Manifest race condition issues), and to
> get changes from Gentoo faster.
>
> Whenever Portage is syncing something, our view was that we should prioritise successful
> completion of syncs, especially given it may be performed unattended.
>
> If git is pulling from a CDN, Portage may on one sync receive state X, but
> on a subsequent sync receive state X-1. This can cause an odd state
> where git wants to resolve conflicts and manual intervention is required.
>
> This situation was often worse with sync-depth=1 and would lead
> to orphaned files, hence the 'git clean' PR referenced.
>
> The motivation behind the sync depth part was because of
> disk space growing unbounded otherwise.
Just to make this more abundantly explicit: it repeatedly happened to
me (but others, too) that on a system using git to sync a shallow
::gentoo clone, during unattended syncs, the repository attempted a
merge with the upstream, yielding a repo in a merging state, with a
huge list of dirtied files in the working tree, plus untracked files.
> > I personally would prefer portage simply adjusting its behavior based on the owner of the repository. That is, if it's the 'portage' user then assume full control, and if it is a different user, then fall back to a preserving, conservative mode of operation. Unfortunately, for me, this idea was received skeptically at best in a recent discussion in #gentoo-portage.
>
> This wouldn't work for Prefix and also FEATURES="-usersync".
>
> --
>
> Now, looking forward in a constructive manner, I think we can
> make both camps happy here with an option to indicate
> If Portage can assume the repository will be touched by something
> other than Portage.
>
> I propose a configuration option called 'volatile' (thanks
> Arsen for the name suggestion) which indicates that the
> repository may be changed outside of Portage by any time,
> and hence no destructive operations should be carried out.
>
> If the option is on, it also prohibits some optimisations
> which require assuming the integrity of the repository.
>
> I have a draft of these changes at https://github.com/gentoo/portage/pull/961.
>
> (https://github.com/gentoo/portage/pull/961.patch if want to view as a raw patch series.0
>
> I am undecided on whether volatile should be default on or not. In the PR
> as it is, it defaults to off, which would require a news item. I may just turn it
> on given the tone of this thread, as none of it has been very encouraging
> for further work on Portage.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-17 5:42 ` [gentoo-dev] " Sam James
` (2 preceding siblings ...)
2022-12-18 2:09 ` John Helmert III
@ 2022-12-18 10:19 ` Florian Schmaus
2022-12-18 11:42 ` Sam James
3 siblings, 1 reply; 13+ messages in thread
From: Florian Schmaus @ 2022-12-18 10:19 UTC (permalink / raw
To: gentoo-dev
On 17.12.22 06:42, Sam James wrote:
>> On 15 Dec 2022, at 19:22, Florian Schmaus <flow@gentoo.org> wrote:
>> I personally would prefer portage simply adjusting its behavior based on the owner of the repository. That is, if it's the 'portage' user then assume full control, and if it is a different user, then fall back to a preserving, conservative mode of operation. Unfortunately, for me, this idea was received skeptically at best in a recent discussion in #gentoo-portage.
>
> This wouldn't work for Prefix and also FEATURES="-usersync".
Simply do not apply the approach on Prefix. That should be fine. I am
not sure how usersync being disabled (or enabled) plays a role here, though.
I believe something like this would make everyone happy:
if volatile_explicitly_configured:
volatile = explicitly_configured_volatile_value
else if prefix
volatile = false
else if Path(repo_dir).user != (root|portage) # Or, if uid >= 1000
volatile = true
else
volatile = false
Assuming that the "if target repo is not shallow, then no shallow clone
(unless explicitly requested)" check is only applied if volatile=true,
then you even have the desired effect that users get their repo
automatically converted to shallow ones. Which makes you happy. And the
above logic would make me happy, since the "if Path(repo_dir).uid >=
1000" branch would be taken for me.
That sounds like a win/win to me.
- Flow
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [gentoo-dev] Current portage will now truncate your repo's git history to 1
2022-12-18 10:19 ` Florian Schmaus
@ 2022-12-18 11:42 ` Sam James
0 siblings, 0 replies; 13+ messages in thread
From: Sam James @ 2022-12-18 11:42 UTC (permalink / raw
To: gentoo-dev
[-- Attachment #1: Type: text/plain, Size: 1765 bytes --]
> On 18 Dec 2022, at 10:19, Florian Schmaus <flow@gentoo.org> wrote:
>
> On 17.12.22 06:42, Sam James wrote:
>>> On 15 Dec 2022, at 19:22, Florian Schmaus <flow@gentoo.org> wrote:
>>> I personally would prefer portage simply adjusting its behavior based on the owner of the repository. That is, if it's the 'portage' user then assume full control, and if it is a different user, then fall back to a preserving, conservative mode of operation. Unfortunately, for me, this idea was received skeptically at best in a recent discussion in #gentoo-portage.
>> This wouldn't work for Prefix and also FEATURES="-usersync".
>
> Simply do not apply the approach on Prefix. That should be fine. I am not sure how usersync being disabled (or enabled) plays a role here, though.
>
The owner of the repository and its permissions will be affected by the permissions used by Portage to sync.
> I believe something like this would make everyone happy:
>
> if volatile_explicitly_configured:
> volatile = explicitly_configured_volatile_value
> else if prefix
> volatile = false
> else if Path(repo_dir).user != (root|portage) # Or, if uid >= 1000
> volatile = true
> else
> volatile = false
>
> Assuming that the "if target repo is not shallow, then no shallow clone (unless explicitly requested)" check is only applied if volatile=true, then you even have the desired effect that users get their repo automatically converted to shallow ones. Which makes you happy. And the above logic would make me happy, since the "if Path(repo_dir).uid >= 1000" branch would be taken for me.
>
Feel free to suggest that on the PR, it sounds like a decent compromise, if a bit automagic - but it wouldn't be the first or last case of that in Portage.
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 358 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-12-18 11:43 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-15 19:22 [gentoo-dev] Current portage will now truncate your repo's git history to 1 Florian Schmaus
2022-12-15 19:56 ` [gentoo-dev] " Florian Schmaus
2022-12-15 20:10 ` [gentoo-dev] " Toralf Förster
2022-12-15 20:40 ` Florian Schmaus
2022-12-16 1:08 ` [gentoo-dev] " Duncan
2022-12-17 4:01 ` Brian Evans
2022-12-18 1:52 ` John Helmert III
2022-12-17 5:42 ` [gentoo-dev] " Sam James
2022-12-17 6:14 ` Michael
2022-12-17 6:25 ` Sam James
2022-12-18 2:09 ` John Helmert III
2022-12-18 10:19 ` Florian Schmaus
2022-12-18 11:42 ` Sam James
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox