Boost logo

Boost :

From: Jens Seidel (jensseidel_at_[hidden])
Date: 2008-03-22 15:36:26


On Sat, Mar 22, 2008 at 02:03:21PM -0400, Beman Dawes wrote:
> There are really two issues here: (1) Clearing svn:executable in
> Subversion (not just in branches/release, I assume), and

For 90% of the files it could be done in a few seconds. Remaining files
need to be inspected more carefully.

> (2) preventing
> this from happening in the future.

I think it is possible that most wrong permissions could come from the
previous CVS repository.
CVS itself used the initial permission during the check-in and saved
these. Since Windows systems don't know anything about executable
permissions it was assumed that each file is executable to be on the
save side (it doesn't hurt on Unix systems it is just ugly, why should
some wrongly marked executable *.cpp files be displayed in a red color,
but others in green?).

I applied the following script to iterate over all executable .cpp files
and to print the name of the author who did the initial commit:

for i in $(find -type f -iname "*.cpp" -perm +111); do \
  svn log -r 1:HEAD --limit 1 --xml "$i" | grep author; \
done | sed -e 's,^<author>,,' -e 's,</author>,,' | sort | uniq

It displays:
alnsn anthonyw daniel_wallin david_abrahams dgregor eric_niebler hljin
johnmaddock jsiek matiascape nesotto rogeeff rwgk turkanis vertleyb witt

Probably the list would be different once only files created after the
migration to Subversion would be considered but I did it as described ...

> An alternative is to not worry about Subversion, but to clear out the
> wrong permissions in the snapshot script,
> trunk/tools/release/snapshot_windows.sh and snapshot_posix.sh.

Ah, that's ugly. Subversion is (opposed to CVS) able to manage
properties and svn:executable is just a special one. It is able to merge
such commits and to revert so let's change Subversion's repository.

There is also no strong need to do it before the release. But as only
properties are fixed and no content it is hard to break something and
I'm sure (Linux) distributors would fix permissions themself to avoid
uglyness installed on the system ...

> Without knowing how the svn:executable property got set in the first
> place I can't tell if this is a one time or recurring problem. Any ideas?

Probably from CVS and only from Windows users. Let's fix it and watch ...

There should be a default setting in each Subversion client (the default
on Posix systems is to use the filesystem properties) and a good default
for Windows is probably svn:executable turned off (since it is unlikely
(but not impossible) that Windows guys create scripts.

PS: Don't forget that also the svn:eol-style property should be set to
native for text files to get proper line endings (Posix: \n, Windows:
\r\n, MacOS: \r) You once wrote a mail and asked for confirmation. Do
you remember? Again fixing 90% of all files is a matter of seconds.

Jens


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk