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
______________________________________________________________________