You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Ben Collins-Sussman <su...@collab.net> on 2001/07/11 20:08:15 UTC

dav props

OK, so here's the state of dav props.

I can commit a user-prop over DAV now, and it definitely goes into the
repository.

But ra_dav isn't sending any props to the update-editor during 'up' or
'co'.

Also -- I think Joe is adding odd prefixes, or losing data somehow,
when storing props in the repository:

  * I originally committed property "foo:bar" on A/D/gamma, over DAV.

  * I attempted to checkout again over DAV, and got no properties at all.

  * I logged into the box with Apache running, and did an ra_local
    checkout.   I *did* get properties on gamma this time.  But they
    looked really weird:

       $ svn pl A/D/gamma 
       METADATA : 
       1:foo : 


    Instead of

       $ svn pl A/D/gamma 
       foo : bar


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: dav props

Posted by Karl Fogel <kf...@collab.net>.
Joe Orton <jo...@btconnect.com> writes:
> Unfortunately I'm currently on a few other quests so I've not got much
> time for the next few weeks... maybe sometime next month. :(

Ah, pity (disregard my earlier "+1" then... I mean, don't disregard
it, but don't take it as a guilt trip either. :-) ).

Thanks for all your work so far, though, Joe!

-K

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: dav props

Posted by Joe Orton <jo...@btconnect.com>.
On Mon, Jul 16, 2001 at 03:03:50PM -0500, Ben Collins-Sussman wrote:
...
> > Both :) The patch I posted does all the client-side stuff necessary, I
> > think. But to satisfy goal (1) above is a really big job.
> 
> Joe, as a Knight of the Subversive Table, can we send you on this
> special quest?  Karl, Mike, and I are all really busy working on other
> problems.  
> 
> You're the best man for the job, not just because you've written the
> client-side stuff already, but because you're most likely to
> understand ra_dav and mod_dav_svn -- you know what Greg is thinking.
> What you call a "big job" is *gargantuan* for the rest of us.  :-)

Unfortunately I'm currently on a few other quests so I've not got much
time for the next few weeks... maybe sometime next month. :(

joe

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: dav props

Posted by Karl Fogel <kf...@collab.net>.
Ben Collins-Sussman <su...@collab.net> writes:
> Joe, as a Knight of the Subversive Table, can we send you on this
> special quest?  Karl, Mike, and I are all really busy working on other
> problems.  
> 
> You're the best man for the job, not just because you've written the
> client-side stuff already, but because you're most likely to
> understand ra_dav and mod_dav_svn -- you know what Greg is thinking.
> What you call a "big job" is *gargantuan* for the rest of us.  :-)

+1

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: dav props

Posted by Ben Collins-Sussman <su...@collab.net>.
Joe Orton <jo...@btconnect.com> writes:

> >   1.  All DAV, DeltaV, and mod_dav_svn-specific properties need to be
> >       stored in their own apr dbm table in the repository, not in the
> >       repository itself.
> > 
> >   2.  All regular, subversion user properties need to stored in the
> >       repository in un-mangled form, and generally need to appear
> >       un-mangled on both ends of the network.  (If the network layer
> >       wants to mangle during transport, that's its own business.)
> > 
> >   (option A) If ra_dav wants to secretly prepend "SVN:" to all user
> >   props, and if mod_dav_svn wants to secretly remove them before
> >   storing them in the repository -- then great, that's fine.  I guess
> >   secret prepending & removal would have to work in the other
> >   direction too.
> >
> >    (option B) The two ends of the pipe need to distinguish between
> >    Subversion properties and DAV properties, since they'll be handled
> >    differently.  It sounds like this is the "right" way to do things.
> > 
> > So what should we do, Joe?  Option A or option B?  
> 
> Both :) The patch I posted does all the client-side stuff necessary, I
> think. But to satisfy goal (1) above is a really big job.

Joe, as a Knight of the Subversive Table, can we send you on this
special quest?  Karl, Mike, and I are all really busy working on other
problems.  

You're the best man for the job, not just because you've written the
client-side stuff already, but because you're most likely to
understand ra_dav and mod_dav_svn -- you know what Greg is thinking.
What you call a "big job" is *gargantuan* for the rest of us.  :-)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: dav props

Posted by Joe Orton <jo...@btconnect.com>.
On Mon, Jul 16, 2001 at 11:53:04AM -0500, Ben Collins-Sussman wrote:
> Joe Orton <jo...@btconnect.com> writes:
> 
> > >   * I attempted to checkout again over DAV, and got no properties at all.
> > 
> > The patch I posted gets this working.
> 
> Whoops, let me go find that post and try it out...

It's with subject "[PATCH] r/w dav props" I think.

...
> > 2) we only allow setting user properties through a specific namespace
> > e.g. "SVN:custom"
> 
> Um, if you're talking about forcing either the user or the client
> libraries to auto-prepend this prefix, that's not acceptable. 

Yes, right, when I say "only allow" I meant the *server* only handles
setting SVN properties which have this namespace.

> > Greg may prefer to do this properly, which would require some large
> > changes to mod_dav itself AFAICT.
> 
> I'm probably getting really confused on this issue, but here are our
> immediate needs:

No, you're not confused, I was confused about (1) below but now I
understand it and agree with everything you say :)

>   1.  All DAV, DeltaV, and mod_dav_svn-specific properties need to be
>       stored in their own apr dbm table in the repository, not in the
>       repository itself.
> 
>   2.  All regular, subversion user properties need to stored in the
>       repository in un-mangled form, and generally need to appear
>       un-mangled on both ends of the network.  (If the network layer
>       wants to mangle during transport, that's its own business.)
> 
> So yes, I guess this means making some large changes to both ra_dav
> and mod_dav_svn.  

[moving this down]
>   (option A) If ra_dav wants to secretly prepend "SVN:" to all user
>   props, and if mod_dav_svn wants to secretly remove them before
>   storing them in the repository -- then great, that's fine.  I guess
>   secret prepending & removal would have to work in the other
>   direction too.

(it's not really prepending, in DAV a property's namespace is separate
from its name, but yes)

>    (option B) The two ends of the pipe need to distinguish between
>    Subversion properties and DAV properties, since they'll be handled
>    differently.  It sounds like this is the "right" way to do things.
> 
> So what should we do, Joe?  Option A or option B?  

Both :) The patch I posted does all the client-side stuff necessary, I
think. But to satisfy goal (1) above is a really big job.

joe

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: dav props

Posted by Ben Collins-Sussman <su...@collab.net>.
Joe Orton <jo...@btconnect.com> writes:

> >   * I attempted to checkout again over DAV, and got no properties at all.
> 
> The patch I posted gets this working.

Whoops, let me go find that post and try it out...


> >        $ svn pl A/D/gamma 
> >        METADATA : 
> >        1:foo : 
> 
> If we make several assumptions:
> 
> 1) mod_dav_svn relies on the internal structures that mod_dav uses for 
> storing properties, see modules/dav/main/props.c in the Apache 2.0 tree

Hmmmm.  I see that DAV props are using a whole fancy `namespace' table.

> 2) we only allow setting user properties through a specific namespace
> e.g. "SVN:custom"

Um, if you're talking about forcing either the user or the client
libraries to auto-prepend this prefix, that's not acceptable.  (It
would be an example of one particular RA implementation allowing its
internal details to creep into unrelated libraries.)  In this same
vein, we want user props in the repository to look exactly as they do
in the working copy.

  (option A) If ra_dav wants to secretly prepend "SVN:" to all user
  props, and if mod_dav_svn wants to secretly remove them before
  storing them in the repository -- then great, that's fine.  I guess
  secret prepending & removal would have to work in the other
  direction too.

> Greg may prefer to do this properly, which would require some large
> changes to mod_dav itself AFAICT.

I'm probably getting really confused on this issue, but here are our
immediate needs:

  1.  All DAV, DeltaV, and mod_dav_svn-specific properties need to be
      stored in their own apr dbm table in the repository, not in the
      repository itself.

  2.  All regular, subversion user properties need to stored in the
      repository in un-mangled form, and generally need to appear
      un-mangled on both ends of the network.  (If the network layer
      wants to mangle during transport, that's its own business.)

So yes, I guess this means making some large changes to both ra_dav
and mod_dav_svn.  

   (option B) The two ends of the pipe need to distinguish between
   Subversion properties and DAV properties, since they'll be handled
   differently.  It sounds like this is the "right" way to do things.

So what should we do, Joe?  Option A or option B?  





---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: dav props

Posted by Joe Orton <jo...@btconnect.com>.
On Wed, Jul 11, 2001 at 03:08:15PM -0500, Ben Collins-Sussman wrote:
> 
> OK, so here's the state of dav props.
> 
> I can commit a user-prop over DAV now, and it definitely goes into the
> repository.
>
> But ra_dav isn't sending any props to the update-editor during 'up' or
> 'co'.
> 
> Also -- I think Joe is adding odd prefixes, or losing data somehow,
> when storing props in the repository:
>
>   * I originally committed property "foo:bar" on A/D/gamma, over DAV.
> 
>   * I attempted to checkout again over DAV, and got no properties at all.

The patch I posted gets this working.
 
>   * I logged into the box with Apache running, and did an ra_local
>     checkout.   I *did* get properties on gamma this time.  But they
>     looked really weird:

Right, what you're seeing is how mod_dav (standalone) stores DAV
properties in a DBM database. This is currently just being passed
through the the SVN FS calls as-is, so you get this weird stuff.  It
looks strange because of the namespace handling in mod_dav and some XML
language handling bits.

>        $ svn pl A/D/gamma 
>        METADATA : 
>        1:foo : 

This means "property foo in the namespace with index 1 in the namespace
table". And the value is actually there hidden after a \0 byte I
believe.

If we make several assumptions:

1) mod_dav_svn relies on the internal structures that mod_dav uses for 
storing properties, see modules/dav/main/props.c in the Apache 2.0 tree

2) we only allow setting user properties through a specific namespace
e.g. "SVN:custom"

then I think we could hack mod_dav_svn to hard-code the namespace table
(i.e. the METADATA entry) and make properties appear correctly.

Greg may prefer to do this properly, which would require some large
changes to mod_dav itself AFAICT.

joe


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org