chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dgit-repos-policy-debian: Fix mode calculation
[dgit.git]
/
infra
/
dgit-repos-policy-debian
diff --git
a/infra/dgit-repos-policy-debian
b/infra/dgit-repos-policy-debian
index 2e0bcc79af7034e9a253a3f532ad5d3003cb1bba..ce98cd72e46bfa104cf57182037dfb09d8f8a51b 100755
(executable)
--- a/
infra/dgit-repos-policy-debian
+++ b/
infra/dgit-repos-policy-debian
@@
-376,7
+376,10
@@
END
my $oldmode = ((stat _)[2]);
my $oldwrites = $oldmode & 0222;
# remove r and x bits which have corresponding w bits clear
my $oldmode = ((stat _)[2]);
my $oldwrites = $oldmode & 0222;
# remove r and x bits which have corresponding w bits clear
- my $newmode = $oldmode & ($oldwrites << 1) & ($oldwrites > 1);
+ my $newmode = $oldmode &
+ (~0555 | ($oldwrites << 1) | ($oldwrites >> 1));
+ printdebug sprintf "chmod %#o (was %#o) %s\n",
+ $newmode, $oldmode, $freshrepo;
chmod $newmode, $freshrepo or die $!;
}
}
chmod $newmode, $freshrepo or die $!;
}
}