Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SVN::Notify::Mirror::RUser(Contributed Perl DocumSVN::Notify::Mirror::Rsync(3)

       SVN::Notify::Mirror::Rsync - Mirror a repository	path via Rsync

       Use svnnotify in	post-commit:

	 svnnotify --repos-path	"$1" --revision	"$2" \
	  --handler Mirror::Rsync --to "/path/to/local/htdocs" \
	  [--svn-binary	/full/path/to/svn] \
	  --rsync-host remote_server \
	  [--rsync-delete=[yes|no]] \
	  [--rsync-dest	"/path/on/remote/server"] \
	  [--rsync-args	arg1 [--rsync-args arg2...]]
	  [[--rsync-ssh] [--ssh-user remote_user] \
	  [--ssh-identity /home/user/.ssh/id_rsa]]

       or better yet, use SVN::Notify::Config for a more sophisticated setup:

	 #!/usr/bin/perl -MSVN::Notify::Config=$0
	 --- #YAML:1.0
	   PATH: "/usr/bin:/usr/local/bin"
	   handler: Mirror
	   to: "/path/to/www/htdocs"
	   handler: Mirror
	   to: "/path/to/local/www/htdocs"
	   rsync-host: "remote_host"
	   rsync-dest: "/path/on/remote/www/htdocs"
	   ssh-user: "remote_user"
	   ssh-identity: "/home/user/.ssh/id_rsa"

       Keep a directory	in sync	with a portion of a Subversion repository.
       Typically used to keep a	development web	server in sync with the
       changes made to the repository.	This directory can either be on	the
       same box	as the repository itself, or it	can be remote (via SSH

       Depending on whether the	target is a "Local Mirror" or a	Remote Mirror,
       there are different options available.  All options are available
       either as a commandline option to svnnotify or as a hash	key in
       SVN::Notify::Config (see	their respective documentation for more

   Working Copy	on Local host
       Because 'svn export' is not able	to be consistently updated, the	local
       rsync'd directory must be a full	working	copy.  The remote server will
       only contain the	ordinary files (no Subversion admin files).

       The files in the	working	copy must be writeable (preferrably owned) by
       the user	identity executing the hook script (this is the	user identity
       that is running Apache or svnserve respectively).

Local Mirror
       Please see " SVN::Notify::Mirror	" for details.

   Remote Mirror
       Used for	directories not	located	on the same machine as the repository
       itself.	Typically, this	might be a production web server located in a
       DMZ, so special consideration must be paid to security concerns.	 In
       particular, the remote mirror server may	not be able to directly	access
       the repository box.

       o   rsync-host

	   This	value is required and must be the hostname or IP address of
	   the remote host (where the mirror directories reside).

       o   rsync-delete

	   The default mode of operation is to delete remote files which are
	   not present in the local working copy.  NOTE: this will delete any
	   unversioned files in	the remote directory tree.  Unless you have
	   all of your files under version control, you	should pass the
	   "--no-rsync-delete" or "--rsync-delete no" option.

       o   rsync-dest

	   This	optional value specifies the path to update on the remote
	   host.  If you do not	specify	this value, the	same path as passed in
	   as the "--to" parameter will	be used	(this may not be what you
	   meant to do).

       o   rsync-args

	   This	optional parameter can be used to pass additional commandline
	   options to the rsync	command.  You can use this multiple times in
	   order to pass multiple options.  The	default	args are "--archive
	   --compress".	 See the "rsync-ssh" options for using SSH instead of
	   RSH (rather than pass those commands	via "--rsync-args"

       o   rsync-ssh

	   This	optional parameter signals that	you wish to use	SSH instead of
	   whatever the	default	remote shell program is	configured in your
	   copy	of rsync.  You may need	to set one or more of the "ssh-*"
	   parameters as well.

       o   ssh-user

	   If the remote user is different than	the local user executing the
	   postcommit script, you can specify it with this parameter.  You
	   would often use this	in conjunction with the	next parameter.

       o   ssh-identity

	   This	value may be optional and should be the	full path to the local
	   identity file being used to authenticate with the remote host. If
	   you are setting the ssh-user	to be something	other than the local
	   user	name, you will typically also have to set the ssh-identity.

       John Peacock <>

       Copyright (c) 2005-2008 John Peacock

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       The full	text of	the license can	be found in the	LICENSE	file included
       with this module.

       SVN::Notify, SVN::Notify::Config, SVN::Notify::Mirror

       Hey! The	above document had some	coding errors, which are explained

       Around line 157:
	   L<> starts or ends with whitespace

perl v5.24.1			  2017-07-02	 SVN::Notify::Mirror::Rsync(3)


Want to link to this manual page? Use this URL:

home | help