I want to check out from a mirror, but commit to the master without svn sw --relocate command

633 views Asked by At

I want to check out from a mirror, but commit to the master without svn sw , is it possible?

With svn sw --relocate I can do this, but I want to automatically change from slave to master during commits. How svn checkout will work ( Process) Can any one explain this.

Can't I set the target IP or master IP of the slave server during check-out? Is there any script?

I am trying to sync data from master server itself but I am getting the following error:

Warning: post-commit hook failed (exit code 255) with output: Host key verification failed.

I kept slave's svnsync sync file:///pwd/proj command in master's /pathc/proj/hooks/post-commit file at the end of the file. I am getting the above error, but if I run this command in a shell prompt on master server it works fine. How can I resolve this?

1

There are 1 answers

0
klaus thorn On

SVNMasterURI seems to be the keyword here.

I have only seen someone doing this. Since there is no other answer yet, it is better than nothing, I guess, to cite my notes here. You should use them as a starting point for further research, though, not as the final truth on the subject.

Use apache on the mirror and of course http(s) for acccesing the repository from your client.

Configure Apache to redirect all write commands (=commit) to the master svn server. Read commands (= update etc.) are still to be served locally.

It seems you cannot use AuthzSVNAccessFile on the mirror with this setup, or else commits to the master are said to be not working.

In the example I saw, the following file was changed: /etc/apache2/mods-enabled/dav_svn.conf

SVNMasterURI https://master.com/repo
AuthType basic
AuthBasicProvider ldap external
AuthExternal master-svn
require valid-user

Note: "ldap" and "external" are just there as examples that you can use different auth mechanisms for read and write (= mirror and master). In this example, ldap was used on the mirror for read commands, external was used with the master. Further ldap configuration and ExternalAuth configuration are omitted here.