You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Jim Lord <jl...@divxcorp.com> on 2010/07/26 22:15:55 UTC

Subversion 1.6 write-through proxy mirroring

Hopefully you can point me in the right direction:

I'm setting up a write-through proxy mirror.  I can run:

svnsync init --source-username svnsystem --source-password $pass  --sync-username svnsystem --sync-password $pass   file:///data/svn/vtest https://versiontest2.divxnetworks.com/svn/vtest

from the slave machine versiontest1

BUT, I can't run:

svnsync init --source-username svnsystem --source-password $pass  --sync-username svnsystem --sync-password $pass   https://versiontest1.divxnetworks.com/svn/vtest  file:///data/svn

on the master without getting the error:

svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: At least one property change failed; repository is unchanged
svnsync: Server sent unexpected return value (500 Internal Server Error) in response to PROPPATCH request for '/svn/vtest/!svn/bln/0'

The pre-revprop-change hooks exist on both master and slave for the vtest repository

I want the mirroring to be a PUSH model from the Master to the Slave instead of a PULL model from the slave.  Otherwise, I don't think I can get the write-through proxying to work correctly.

I do have these on the slave's httpd configuration files:

<Location /vtest>
        DAV svn
        SVNPath /data/svn/vtest
        SVNMasterURI https://versiontest2.divxnetworks.com/svn/vtest
...
</Location>
<Location /svn/vtest>
        DAV svn
        SVNPath /data/svn/vtest
        SVNMasterURI https://versiontest2.divxnetworks.com/svn/vtest
...
</Location>

<Location /svn-proxy-sync>
  DAV svn
  SVNPath /data/svn/vtest
  Order deny,allow
  Deny from all
  # Only let the server's IP address access this Location:
  Allow from 172.16.4.134
</Location>

Is there something about the apache configuration of the master or slave that I'm missing?

The master versiontest2 and slave versiontest1 are configured exactly from the same image of a Slackware O/S with http v2.2.13.







Re: Repository Directory Tree

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jul 30, 2010, at 11:14, Allen Williams wrote:

> My subversion repository is in /var/svn. Somehow (and, yes, I'm new;
> I'm evaluating it), I've wound up with the following directory structure
> in my subversion repository:
> 
> /var/svn/
>     var/svn/proj1
>     var/svn/proj2
>     var/svn/proj3.
> 
> In other words, to do a list of the repositories, I have to do:
> 
> svn listfile:///var/svn/var/svn
> 
> to get my projects listed.
> 
> I've tried to do an svnadmin dump and load with --parent-dir, and that
> didn't work.  This was the command line sequence after I had made a copy
> of the repository in /var/svn.sav:
> 
> svnadmin dump /var/svn.sav>   old_repos
> rm -r/var/svn/*
> svnadmin create /var/svn
> svnadmin load --parent-dir / /var/svn<   old_repos
> 
> But, even though I had parent-dir as / (to try to eliminate one of the
> /var/svn's), I still got /var/svn/var/svn/projects.
> 
> What is the way to do this?

svnadmin load --parent-dir lets you add a parent directory into which the contents of the dump will be imported. It does not let you strip out leading directories from the dump.

I would just use "svn mv" to move proj1 thru 3 up two levels, then "svn rm" to remove the unwanted var.

Alternately, if you insist on purging all record of this mistake from the repository's history, you can fiddle with something like svndumptool.

Repository Directory Tree

Posted by Allen Williams <an...@infoisland.net>.
My subversion repository is in /var/svn. Somehow (and, yes, I'm new;
I'm evaluating it), I've wound up with the following directory structure
in my subversion repository:

/var/svn/
      var/svn/proj1
      var/svn/proj2
      var/svn/proj3.

In other words, to do a list of the repositories, I have to do:

svn listfile:///var/svn/var/svn

to get my projects listed.

I've tried to do an svnadmin dump and load with --parent-dir, and that
didn't work.  This was the command line sequence after I had made a copy
of the repository in /var/svn.sav:

svnadmin dump /var/svn.sav>   old_repos
rm -r/var/svn/*
svnadmin create /var/svn
svnadmin load --parent-dir / /var/svn<   old_repos

But, even though I had parent-dir as / (to try to eliminate one of the
/var/svn's), I still got /var/svn/var/svn/projects.

What is the way to do this?

TIA,
Allen


Re: Subversion 1.6 write-through proxy mirroring

Posted by John Beranek <jo...@redux.org.uk>.
On 26/07/10 23:15, Jim Lord wrote:
> I’m setting up a write-through proxy mirror.  I can run:
> 
[snip]
> 
> BUT, I can’t run:
> 
> svnsync init --source-username svnsystem --source-password $pass
>  --sync-username svnsystem --sync-password $pass
>   https://versiontest1.divxnetworks.com/svn/vtest  file:///data/svn
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[snip]
> I do have these on the slave’s httpd configuration files:
> 
[snip]
> <Location /svn/vtest>
> 
>         DAV svn
> 
>         SVNPath /data/svn/vtest
> 
>         SVNMasterURI https://versiontest2.divxnetworks.com/svn/vtest
> 
> …
> 
> </Location>

You can't svnsync to something that's configured with SVNMasterURI and
therefore trying to proxy the write requests to the master, can you!?

> <Location /svn-proxy-sync>
> 
>   DAV svn
> 
>   SVNPath /data/svn/vtest
> 
>   Order deny,allow
> 
>   Deny from all
> 
>   # Only let the server's IP address access this Location:
> 
>   Allow from 172.16.4.134
> 
> </Location>

So shouldn't the svnsync be:

svnsync init --source-username svnsystem --source-password $pass \
  --sync-username svnsystem --sync-password $pass \
  https://versiontest1.divxnetworks.com/svn-proxy-sync  \
  file:///data/svn

On another note (if practical) I can tell you that svnsync via the
svn:// protocol is _much_ quicker than via http(s).

John.

-- 
John Beranek                         To generalise is to be an idiot.
http://redux.org.uk/                                 -- William Blake

RE: Subversion 1.6 write-through proxy mirroring

Posted by Jon Foster <Jo...@cabot.co.uk>.
Jim Lord wrote:
> I'm setting up a write-through proxy mirror.  I can run:
>
> svnsync init --source-username svnsystem --source-password $pass
>   --sync-username svnsystem --sync-password $pass
>   file:///data/svn/vtest
>   https://versiontest2.divxnetworks.com/svn/vtest
> from the slave machine versiontest1 
> BUT, I can't run:
> svnsync init --source-username svnsystem --source-password $pass
>   --sync-username svnsystem --sync-password $pass
>   https://versiontest1.divxnetworks.com/svn/vtest
>   file:///data/svn
> on the master without getting the error:
> svnsync: DAV request failed; it's possible that the repository's
> pre-revprop-change hook either failed or is non-existent
>
> The pre-revprop-change hooks exist on both master and slave for
> the vtest repository

What are the filesystem permissions on your pre-revprop-change hook in
the target repository?  What user does Apache run as?  Does that user
have execute permission on the hook script?

Kind regards,

Jon


**********************************************************************
This email and its attachments may be confidential and are intended solely for the use of the individual to whom it is addressed. Any views or opinions expressed are solely those of the author and do not necessarily represent those of Cabot Communications Ltd.

If you are not the intended recipient of this email and its attachments, you must take no action based upon them, nor must you copy or show them to anyone.

Cabot Communications Limited
Verona House, Filwood Road, Bristol BS16 3RY, UK
+44 (0) 1179584232

Co. Registered in England number 02817269

Please contact the sender if you believe you have received this email in error.

**********************************************************************


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________