Subject: Read-only access to an "objects/info/alternates" repository

From: Stefan Monnier <[email-masked]>
Date: Fri, 25 Dec 2020 16:47:00 -0500

Thank you for filling out a Git bug report!
Please answer the following questions to help us understand your issue.

What did you do before the bug happened? (Steps to reproduce your issue)

I did basically:

    git clone --reference ~otheruser/nongnu
    [ Days passed and I did various things.  ]
    cd nongnu; git gc

Note that `otheruser` is [..wait for it..] another user, so I only have
read access to the referenced repository.

What did you expect to happen? (Expected behavior)

That it would GC the local part of the repository and that it wouldn't
try to modify the referenced repository.

What happened instead? (Actual behavior)

I got warnings indicating that Git was trying to delete files from
the referenced repository:

    Enumerating objects: 35095, done.
    Nothing new to pack.
    warning: unable to unlink '/home/otheruser/nongnu/.git/objects/pack/pack-0d85e74ac2f7e51ce26f281e64eb738e8182fa95.idx': Permission denied
    warning: unable to unlink '/home/otheruser/nongnu/.git/objects/pack/pack-5fe14feff49ccdee5469af9dc94f6784e8464a6b.idx': Permission denied

What's different between what you expected and what actually happened?

The warnings.

Anything else you want to add:

The warnings make me wonder if I should worry about other possible
misbehaviors when using such a setup.

Please review the rest of the bug report below.
You can delete any lines you don't wish to share.

[System Info]
git version:
git version 2.29.2
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
uname: Linux 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64
compiler info: gnuc: 10.2
libc info: glibc: 2.28
$SHELL (typically, interactive shell): /bin/bash

[Enabled Hooks]