The 06cbe8550324e0fd2290839bf3b9a92aa53b70ab core.sharedRepository handling extension broke backwards compatibility; before, shared=1 meant that Git merely ensured the repository is group-writable, not that it's _only_ group-writable, which is the current behaviour.
Maybe it makes sense to provide the current semantics in some way too, but that cannot be done at the expense of ditching backwards compatibility; this bug has just wasted me two hours and broke repo.or.cz pushing for several hours.
Signed-off-by: Petr Baudis <pasky@rover.dkm.cz> ---
Sorry for the resend, StGIT kind of tricked me to adding two Cc headers and the first one just got dropped.
path.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to path.c +1 −1
diff --git a/path.c b/path.c index 5983255..75c5915 100644 --- a/path.c +++ b/path.c @@ -269,7 +269,7 @@ int adjust_shared_perm(const char *path) mode = st.st_mode; if (shared_repository) { - int tweak = shared_repository; + int tweak = (mode & 0777) | shared_repository; if (!(mode & S_IWUSR)) tweak &= ~0222; mode = (mode & ~0777) | tweak;