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

Reply via email to