[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: Konstantin Kolinko <knst.kolinko_at_gmail.com>
Date: Sat, 9 May 2009 04:42:40 +0400

2009/4/27 Sergey Kryzhny <sergey.kryzhny_at_gmail.com>:
> 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 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
>
>

It sounds somehow similar to the following use case,
someone stumbled upon in October 2008:
"Re: Show log"
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=88192

Best regards,
Konstantin Kolinko

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2127101
Received on 2009-05-09 02:44:36 CEST

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