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

RE: SVN Protocol

From: Ramprasad Venkata Inala <rinala_at_cordys.com>
Date: 2005-07-25 12:01:20 CEST

Actually the actual architecture would be some thing like this.

 _______ _______ _____________
_______
| SVN | | SVN | | Versioning |
| SVN |
| Client| -----> | Proxy | -----> | System | -----> | Server|
|_______| |_______| |_____________|
|_______|

I need to do support the functionalities like the check-out, commit etc
that svn supports. But for the proof of concept I decided to do just the
check-out functionality.
The SVN proxy is basically written in Java. I have some hard coded most
of the protocol to understand the working of it.
I captured the protocol data from the ethereal tool. I have made the
connection with the SVN proxy and then when I received an update command
then I send back a response as in the below format.

( success ( ( ) 0: ) ) ( target-rev ( 1 ) ) ( open-root ( ( 1 ) 2:d0 ) )
( change-dir-prop ( 2:d0 23:svn:entry:committed-rev ( 1:1 ) ) ) (
change-dir-prop ( 2:d0 24:svn:entry:committed-date (
27:2005-07-01T04:33:11.031948Z ) ) ) ( change-dir-prop ( 2:d0
14:svn:entry:uuid ( 36:a01d4cae-f992-8e49-80fa-6a508579ee32 ) ) ) (
add-file ( 8:abcd.txt 2:d0 2:c1 ( ) ) ) ( change-file-prop ( 2:c1
23:svn:entry:committed-rev ( 1:1 ) ) ) ( change-file-prop ( 2:c1
24:svn:entry:committed-date ( 27:2005-07-01T04:33:11.031948Z ) ) ) (
change-file-prop ( 2:c1 14:svn:entry:uuid (
36:a01d4cae-f992-8e49-80fa-6a508579ee32 ) ) ) ( apply-textdelta ( 2:c1 (
) ) ) ( textdelta-chunk ( 2:c1 4:SVN. ) )

I have done till this point. But for the next textdeltachunk what should
be passed and how to pass it is what I am pondering ? This is where I am
stuck. How to send then data back to the client in a format( the first
dots, and second dot ).
I understood a bit and then I tried putting some data in the first chunk
( but do not know whether it is in right format or not ).

( textdelta-chunk ( 2:c1 5:..... ) ) ( textdelta-chunk ( 2:c1 1:. ) ) (
textdelta-chunk ( 2:c1 2:hi ) ) ( textdelta-end ( 2:c1 ) ) ( close-file
( 2:c1 ( 32:2510c39011c5be704182423e3a695e91 ) ) ) ( close-dir ( 2:d0 )
) ( close-edit ( ) )

Please help me..

Thanks and regards
Ramprasad

Note: I was sick last week so I could not reply back. Please apologize..

-----Original Message-----
From: Ben Collins-Sussman [mailto:sussman@collab.net]
Sent: Thursday, July 14, 2005 7:58 PM
To: Ramprasad Venkata Inala
Cc: Max Bowsher; dev@subversion.tigris.org
Subject: Re: SVN Protocol

If the client is running 'svn checkout' (or 'svn update'), then the
server process which responds has to do *much* more than simply send
file diffs.

1. It needs to parse the status report sent by the client. It then
needs to use this report to build a virtual tree that represents the
client's tree.

2. It must compare the client's tree against a repository revision,
and drive an 'editor' vtable.

3. As one small part of the editor-drive, it sends file diffs.

Is your proxy server doing all this? What I'm not understanding is
how your proxy server is supposed to work. I don't see the forest
through the trees... what's the overall design? Are you going to
rewrite all of 'svnserve' and libsvn_repos from scratch? If not, how
much do you need to write?

Please help us understand the overall design of your proxy.

On Jul 14, 2005, at 1:18 AM, Ramprasad Venkata Inala wrote:

> I wanted to send the diff( I think it is diff from the packet capture
> using ethereal ) to the client.
> I have reached to a stage where I cannot proceed further. I used
> the JNI
> method to achieve(ing) the diff instead of rewriting it in java as
> suggested by you.
> But I am unable to get the exact way to do it.
> I get a diff string from my versioning system then I need to send the
> same to the to svn client that is a client to my proxy.
> Can you help me?
> Thanks and regards
> Ramprasad
> -----Original Message-----
>
> **********************************************************************
> The information in this message is confidential and may be legally
> privileged. It is intended solely for the addressee. Access to this
> message
> by anyone else is unauthorized. If you are not the intended
> recipient, any
> disclosure, copying, or distribution of the message, or any action or
> omission taken by you in reliance on it, is prohibited and may be
> unlawful.
> Please immediately contact the sender if you have received this
> message in
> error.
> **********************************************************************
>
>
> From: Ramprasad Venkata Inala
> Sent: Tuesday, July 12, 2005 9:53 AM
> To: 'Ben Collins-Sussman'
> Cc: Max Bowsher; dev@subversion.tigris.org
> Subject: RE: SVN Protocol
>
> Yes sure.
>
> I am trying to do check-out functionality on the repository for the
> first time, to start with
>
> Hence I the client uses the
> "svn co svn://localhost/"
> when such a request is received by the client then the svn proxy
> should
> respond the same way as a svn server.
> Hence the protocol understanding is important to me.
>
> Thanks and Regards
> Ramprasad
> -----Original Message-----
> From: Ben Collins-Sussman [mailto:sussman@collab.net]
> Sent: Friday, July 08, 2005 8:03 PM
> To: Ramprasad Venkata Inala
> Cc: Max Bowsher; dev@subversion.tigris.org
> Subject: Re: SVN Protocol
>
>
> On Jul 7, 2005, at 11:58 PM, Ramprasad Venkata Inala wrote:
>
>
>> I am trying to send the (diff, not sure of it is diff data or not )
>> data
>> using the svn protocol.
>>
>
> The problem is, we don't know what the client expects either, because
> we don't know what command the client is running (i.e. what request
> it is making) You haven't told us.
>
> Instead of talking about everything at the protocol-level, can you
> give us a *high* level description of what is happening?
>
> For example:
>
> "I'm running 'svn cat fileURL', and the client is doing this by
> running svn_ra_get_file()."
>
>

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

Received on Mon Jul 25 12:02:38 2005

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.