On Sat, Feb 10, 2024 at 08:52:22PM +0100, K_V wrote: > Hi team git > > Running 'git -C /srv/mssioncontrol/.git gc' on linux from a user which > has access to another users files will occasionally change the > ownership of the file 'packed-refs'. I believe git actually overwrites > the file with a new one at the end af the gc command. But details > about this is not writen in the help text. Could it be a bug? > > Use case: I'm using ansible to cleanup .git directories across > multible servers and this issue is starting to cause problems. > > My solution is to make a variable containing the user and group id > before running gc command and then reapply it afterwards: > current_owner_uid_gid=$(stat -c "%u:%g" /srv/mssioncontrol/.git) > git -C /srv/mssioncontrol/.git gc > chown -R $current_owner_uid_gid "/srv/mssioncontrol/.git" > > Details: > Debian GNU/Linux 12 (bookworm) > git version 2.39.2 Thanks for reporting this - I think that you have a working workaround ? However, Git has a feature called "shared repository". You need to define a (unix) group that is shared between your user(s) and the ansible user. The basic trick is to do git config core.sharedRepository true (And then change the ownership of all files/directories to the new group) There is a docu here, please search for core.sharedRepository https://git-scm.com/docs/git-config I wonder, which solution is easier to maintain ? > > Best: > zinen >