On 3/1/2010 5:43 AM, Alan Burn wrote:
Hi Dave,
On Fri 26/02/2010 22:45 Dave wrote:
As a last gasp effort, please try the attached (modified)
reproduce.sh script. It uses an empty user Subversion
configuration directory, just to rule that out. Please also
move /etc/subversion out of the way before running it. There
are commands to do that at the top and bottom of the script,
but they're commented out.
Done. The problem is reproduced again as shown in the command
line output below.
So I think I've made a little progress here. I still don't have a
solution, but I can now reproduce the problem.
The problem is triggered by default group ACLs on the working copy
directory. When I run as a local administrator, a
"default:group:Administrators:rwx" ACL will cause the ".exe" extension
to be appended, while "d:g:Administrators:---" will avoid the problem. I
see similar results for a non-admin user and the "Users" group.
I was running the script in a directory under /tmp, which doesn't have
these default ACLs.
$ getfacl /tmp
# file: /tmp
# owner: drothe
# group: None
user::rwx
group::rwx
mask:rwx
other:rwx
default:user::rwx
default:group::rwx
default:other:rwx
But, if I run the script in a new directory which has the default ACLs,
the problem appears.
$ mkdir /cygdrive/c/svn-tst
$ getfacl /cygdrive/c/svn-tst
# file: /c/svn-tst
# owner: drothe
# group: None
user::rwx
group::r-x
group:SYSTEM:rwx
group:Administrators:rwx
group:Users:rwx
mask:rwx
other:r-x
default:user::rwx
default:group::r-x
default:group:SYSTEM:rwx
default:group:Administrators:rwx <<---- triggers problem
default:group:Users:rwx
default:mask:rwx
default:other:r-x
I've attached another reproduction script that sets the default ACL for
each group to 0 on the working copy before doing the final checkout.
This avoids the problem for me. Please let me know what you find.
--
David Rothenberger ---- daver...@acm.org
QOTD:
"I haven't come far enough, and don't call me baby."
#!/bin/bash
# Set to "clear" to clear the default ACLs. This should make the
# problem go away.
#
# Set to "set" to set the default ACLs. This should cause the
# problem to appear.
SETACLS=clear
#SETACLS=set
rm -fr repos trunk tst cfg
mkdir cfg
R=file:///$(cygpath -ua .)/repos
CFG="$(cygpath -ua cfg)"
echo "R=$R"
# Create the repository
svnadmin create repos
# Create the trunk
svn mkdir --config-dir $CFG -m '' "$R/trunk"
svn co --config-dir $CFG "$R/trunk"
# Add an EXE and a TXT file
cd trunk
cp "$(cygpath -Wua)"/notepad notepad.xxx
date > text.txt
svn add --config-dir $CFG *
svn ci --config-dir $CFG -m ''
# Check out into another directory
cd ..
mkdir tst
if [ -n "$SETACLS" ]; then
for g in $(id -G); do
if [ "$SETACLS" = "clear" ]; then
setfacl -m d:g:$g:0 tst
elif [ "$SETACLS" = "set" ]; then
setfacl -m d:g:$g:rwx tst
fi
done
fi
getfacl tst
svn co --config-dir $CFG "$R/trunk" tst
cd tst
ls -l
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple