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

Re: strange bug with propget/proplist/propedit via mod_dav_svn UPDATED

From: Sergey Kryzhny <sergey.kryzhny_at_gmail.com>
Date: Mon, 27 Apr 2009 13:07:51 +0300

Hi All!

2009/4/15 Sergey Kryzhny <sergey.kryzhny_at_gmail.com>

> Hi all!
>
> 2009/4/10 Sergey Kryzhny <sergey.kryzhny_at_gmail.com>
>
>> Hi Ryan!
>>
>>
>> 2009/4/9 Ryan Schmidt <subversion-2009a_at_ryandesign.com>
>>
>>
>>> On Apr 9, 2009, at 05:19, Sergey Kryzhny wrote:
>>>
>>> I try to implement pre-revprop-change hook for change svn:log message
>>>> and run into problem with access via apache mod_dav_svn.
>>>> Everything work fine via EDITOR=nano svn propedit -r 16385 --revprop
>>>> svn:log file:///mnt/svn/repositories/projects/
>>>> I get back string like "fixin foo/bar JIRA-blah-blah" and can edit/set
>>>> new message.
>>>> But if I use EDITOR=nano svn propedit -r 16385 --revprop svn:log
>>>> http://svn1.mycompany.org/projects/
>>>> on same host or via internet / intranet I get empty response string.
>>>> Same behavior for propget and proplist. Proplist does not return
>>>> property list via dav.
>>>>
>>>> Tried different windows/linux client.
>>>> Tried different versions of subversion: 1.4.4 via yum on Fedora7, 1.5.4
>>>> via yum on Fedora 10, 1.6.0 build from sources on Fedora10, 1.4.6 on Ubuntu
>>>> 8.04
>>>> Tried FSFS and BDB repository.
>>>> Tried Dump/Load repository and svnadmin upgrade repository.
>>>>
>>>> Very strange that for some repository revision it work normally for both
>>>> file/dav access. -> so hooks are OK.
>>>> Like for revision 12570 it work, for revision 16385 it dosen't work via
>>>> dav.
>>>>
>>>> And most mistycal that if I rename my repository (on host local FS) from
>>>> "projects" to some other name like "projects2" or "projects.orig" it start
>>>> work via dav!!!!
>>>> I even try to symlink directory "projects" to "projects2" - work on
>>>> "projects2" and dosen't work on "projects" !!!
>>>>
>>>> Any ideas to resolve this strange bug?
>>>>
>>>
>>> Perhaps there is some other Apache directive matching on the string
>>> "projects" and interfering. Search your httpd.conf and any other files it
>>> includes for the string "projects".
>>>
>>>
>> Only one string in apache configs match projects:
>> RedirectMatch "^/?$" "/projects/"
>>
>> I don't think this may be problem, with some revisions in svn repository
>> propget works, with some don't work.
>> If I use mod_proxy redirection from /projects to renamed "projects2"
>> repository - forks fine.
>>
>> --
>> --
>> Best regards,
>> Sergey
>>
>> So, after hours of trying and tweaking I found issue:
>
> propget/propedit for specific revision, that has commit to not anonymous
> read directory, silently return empty string.
> I explicitly provide username and password to propget command, like:
> svn propget --username sergkr --password secret -r 4 --revprop svn:log
> http://svn1.exoplatform.org/test1/
>
> For revision, that have commit to directories with anonymous read access it
> return properties as expected.
>
> I can propget values on host, serving subversion via command: EDITOR=mcedit
> svn propedit -r 4 --revprop svn:log file:///mnt/svn/repositories/test1/, so
> I know what properties are exist.
>
> I think this is BUG - do not return "access denied" or "authentication
> required" to client, or better ask for user credential, or best case is USE
> provided via command line user credential.
>
> How to reproduce this:
> Use * Subversion <http://subversion.tigris.org/> version 1.5.4 (r33841).
> by Fedora 10 x64 yum install*
> (I tried subversion 1.6.1 from sources - same problem)
> Create test1 repository
> svnadmin create test1
> add virtual host apache configuration for svn with LDAP user database
> add to svnauthz.conf:
> >>>>>
> exo-dev=sergkr,root
>
> [test1:/]
> * = r
> @exo-dev = r
> @exo-dev = rw
>
> [test1:/branch]
> * =
> @exo-dev = r
> @exo-dev = rw
> <<<<<<<
>
> and make various svn co, svn ci
> to "private" branch directory and other "public" directory in various
> combination.
>
> Via mod_dav_svn: svn propget --username sergkr --password secret -r 4
> --revprop svn:log http://svn1.exoplatform.org/test1/
> For revision there no commits to "private" /branch directory you can
> successfully get these properties.
> For revision there IS commits to "private" /branch directory you get empty
> string as result. Silently!!!
>
> Via file:// EDITOR=mcedit svn propget -r 4 --revprop svn:log
> file:///mnt/svn/repositories/test1/
> You get all properties.
>
> P.S.
> When I change svnauthz.conf for allow anonymous read of "branch".
> >>>>>>>>>>>>
> [test1:/branch]
> * = r
> @exo-dev = r
> ....
> <<<<<<<<<<<<
> I get properties instead of empty string.
>

So do You have any ideas to workaround this behavior?
My main goal to allow user of repository change svn:log message.

Currently only one option I see - create web interface on PHP that use file
interface on host like:
svn propget -r 4 --revprop svn:log file:///mnt/svn/repositories/test1/

Any suggestion, tips?

-- 
--
Best regards,
Sergey
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1943165
Received on 2009-04-28 19:21:13 CEST

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

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