##// END OF EJS Templates
docs: update SVN configuration docs
docs: update SVN configuration docs

File last commit:

r681:322327cb stable
r681:322327cb stable
Show More
svn-http.rst
128 lines | 4.1 KiB | text/x-rst | RstLexer
project: added all source files and assets
r1 .. _svn-http:
|svn| With Write Over HTTP
--------------------------
docs: update SVN configuration docs
r681 To use |svn| with read/write support over the |svn| protocol, you have to
configure HTTP |svn| backend.
project: added all source files and assets
r1
Prerequisites
^^^^^^^^^^^^^
docs: update SVN configuration docs
r681 - Enable HTTP support inside labs setting on your |RCE| instance,
see :ref:`lab-settings`.
- You need to install the following tools on the machine that is running an
instance of |RCE|:
``Apache HTTP Server`` and
``mod_dav_svn``.
Using Ubuntu Distribution as an example you can run:
project: added all source files and assets
r1
.. code-block:: bash
$ sudo apt-get install apache2 libapache2-mod-svn
Once installed you need to enable ``dav_svn``:
.. code-block:: bash
$ sudo a2enmod dav_svn
Configuring Apache Setup
^^^^^^^^^^^^^^^^^^^^^^^^
.. tip::
It is recommended to run Apache on a port other than 80, due to possible
conflicts with other HTTP servers like nginx. To do this, set the
``Listen`` parameter in the ``/etc/apache2/ports.conf`` file, for example
docs: update SVN configuration docs
r681 ``Listen 8090``.
.. warning::
project: added all source files and assets
r1
docs: update SVN configuration docs
r681 Make sure your Apache instance which runs the mod_dav_svn module is
only accessible by RhodeCode. Otherwise everyone is able to browse
the repositories or run subversion operations (checkout/commit/etc.).
It is also recommended to run apache as the same user as |RCE|, otherwise
permission issues could occur. To do this edit the ``/etc/apache2/envvars``
project: added all source files and assets
r1
.. code-block:: apache
docs: update SVN configuration docs
r681 export APACHE_RUN_USER=rhodecode
export APACHE_RUN_GROUP=rhodecode
project: added all source files and assets
r1
1. To configure Apache, create and edit a virtual hosts file, for example
docs: update SVN configuration docs
r681 :file:`/etc/apache2/sites-available/default.conf`. Below is an example
how to use one with auto-generated config ```mod_dav_svn.conf```
from configured |RCE| instance.
project: added all source files and assets
r1
.. code-block:: apache
docs: update SVN configuration docs
r681 <VirtualHost *:8080>
ServerAdmin rhodecode-admin@localhost
DocumentRoot /var/www/html
ErrorLog ${'${APACHE_LOG_DIR}'}/error.log
CustomLog ${'${APACHE_LOG_DIR}'}/access.log combined
Include /home/user/.rccontrol/enterprise-1/mod_dav_svn.conf
</VirtualHost>
project: added all source files and assets
r1
2. Go to the :menuselection:`Admin --> Settings --> Labs` page, and
enable :guilabel:`Proxy Subversion HTTP requests`, and specify the
:guilabel:`Subversion HTTP Server URL`.
docs: update SVN configuration docs
r681 3. Open the |RCE| configuration file,
:file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
4. Add the following configuration option in the ``[app:main]``
section if you don't have it yet.
This enable mapping of created |RCE| repo groups into special |svn| paths.
Each time a new repository group will be created the system will update
the template file, and create new mapping. Apache web server needs to be
reloaded to pick up the changes on this file.
It's recommended to add reload into a crontab so the changes can be picked
automatically once someone creates an repository group inside RhodeCode.
.. code-block:: ini
##############################################
### Subversion proxy support (mod_dav_svn) ###
##############################################
## Enable or disable the config file generation.
svn.proxy.generate_config = true
## Generate config file with `SVNListParentPath` set to `On`.
svn.proxy.list_parent_path = true
## Set location and file name of generated config file.
svn.proxy.config_file_path = %(here)s/mod_dav_svn.conf
## File system path to the directory containing the repositories served by
## RhodeCode.
svn.proxy.parent_path_root = /path/to/repo_store
## Used as a prefix to the <Location> block in the generated config file. In
## most cases it should be set to `/`.
svn.proxy.location_root = /
This would create a special template file called ```mod_dav_svn.conf```. We
used that file path in the apache config above inside the Include statement.
project: added all source files and assets
r1 Using |svn|
^^^^^^^^^^^
Once |svn| has been enabled on your instance, you can use it using the
following examples. For more |svn| information, see the `Subversion Red Book`_
.. code-block:: bash
# To clone a repository
docs: fixed a svn checkout typo. Fixes #4067
r388 svn checkout http://my-svn-server.example.com/my-svn-repo
project: added all source files and assets
r1
# svn commit
svn commit
.. _Subversion Red Book: http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.ref.svn