[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

WriteAttributes permission required to commit in v1.7.8 but not v1.6.17

From: jimbobmcgee <usersATsubversion.apache.org_at_jimbobmcgee.com>
Date: Wed, 27 Feb 2013 14:33:29 +0000

Hi all;

We have been using v1.6.17 as a rudimentary change monitoring system for
certain Windows server config files, for a few years now (a nightly
script emails the output of `svn status` if not empty). I have been
looking at the possibility of upgrading this to v1.7.8 (the first 1.7.x
release I have tried), but it appears that committing now requires the
'WriteAttributes' permission on each file. It did not in v1.6.17.

Granting the WriteAttributes permission just for this purpose is
awkward, at best (particularly given that many of the files I am
monitoring are owned by the abominable 'NT SERVICE\TrustedInstaller'
account).

In any case, if I do actually take ownership and grant this permission
to the file, svn.exe appears to try to change the file creation date to
01/01/1601 and set the 'N' attribute (which appears to stand for 'Not
indexed'). Why does it need to do this in v1.7.8 but not v1.6.17? Is
it an oversight, or part of some new operation I am not aware of?
Surely the act of committing shouldn't /change/ the file it is
committing, should it?

A good working example (on Windows Server 2008 R2, if you have
Microsoft.NET v3.5 installed) is at
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config.default.
 This file is owned by TrustedInstaller, with Administrators having
Read/Execute only. In v1.6.17, `svn commit` will succeed but, in
v1.7.8, `svn commit` will throw `Cannot set file ... read-write: Access
is denied`.

I have attached Procmon64 exports showing the commit operation on this
file in v1.6.17 (svn1617.csv), v1.7.8 with the normal permissions
(svn178_restricted.csv) and once again after I had granted
WriteAttributes to the file (svn178_allowed.csv).

The pertinent entries from above (transposed for easier reading) are
below:

-- from svn178_restricted.csv -----------------------------
Time = 12:25:19.3938787
Process Name = svn.exe
PID = 292
Operation = CreateFile
Path =
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config.default
Result = ACCESS DENIED
Detail = Desired Access: Write Attributes, Synchronize,
                  Disposition: Open,
                  Options: Synchronous IO Non-Alert, Open Reparse Point,
                  Attributes: n/a,
                  ShareMode: Read, Write, Delete,
                  AllocationSize: n/a

-- from svn178_allowed.csv -----------------------------
Time = 13:02:26.6088387
Process Name = svn.exe
PID = 384
Operation = SetBasicInformationFile
Path =
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config.default
Result = SUCCESS
Detail = CreationTime: 01/01/1601 00:00:00,
               LastAccessTime: 01/01/1601 00:00:00,
               LastWriteTime: 01/01/1601 00:00:00,
               ChangeTime: 01/01/1601 00:00:00,
               FileAttributes: AN

The condensed results of `svn --version` from both versions are as
follows:

svn, version 1.6.17-SlikSvn-tag-1.6.17_at_1130898-X64 (SlikSvn/1.6.17) X64
   compiled Jun 3 2011, 07:48:11
Copyright (C) 2000-2009...
The following repository access (RA) modules are available: ra_neon,
ra_svn, ra_local, ra_serf

svn, version 1.7.8-SlikSvn-1.7.8-X64 (SlikSvn/1.7.8) X64
  compiled Jan 11 2013, 16:31:23
Copyright (C) 2012...
The following repository access (RA) modules are available: ra_neon,
ra_svn, ra_local, ra_serf

Can anyone shed some light on this?

Regards
J

Received on 2013-02-27 16:07:58 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.