<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>infrae.subversion</name>
<shortdesc>Buildout recipe for checking out from subversion</shortdesc>
<description>infrae.subversion
=================

This zc.buildout recipe will check out a *number* of URLs into its
parts directory.  It won't remove its parts directory if there are any
changes in the checkout, so it's safe to work with that checkout for
development.

This is an example buildout part that uses this recipe::

    [development-products]
    recipe = infrae.subversion
    urls =
        https://svn.plone.org/svn/collective/PDBDebugMode/trunk PDBDebugMode

This will maintain a working copy of ``PDBDebugMode`` in the
``parts/development-products/PDBDebugMode`` directory (*not* in the
parts directory itself).  Thus, the recipe handles multiple URLs fine.

You can select a different location with ``location``, for instance::

   location = src

Will extract ``PDBDebugMode`` in ``src/PDBDebugMode`` instead of
``parts``.

If you have ``pysvn`` installed on the computer, it will be used. This
implies better performances.

Update
------

By default, when buildout update the part, an ``svn up`` is done for
each link. However, when a revision number is specified like this::

   https://svn.infrae.com/buildout/infrae.subversion/trunk@27829

The SVN link is skipped for update. If you want to prevent update for
all SVN link of the part even if they do not contain revision number,
you can add the following option::

   ignore_updates = true

Export
------

With ``pysvn`` installed, you can specify::

   export = true

in your buildout part to get an SVN export instead of an SVN checkout.

Verification
------------

By default, your checkout are checked against local modification
before any uninstallation step. This can take time on large checkouts,
and you may don't want it in some case (like when used on buildbot for
instance). To prevent this step, you can use this option::

  ignore_verification = true

Eggs
----

If you set the option ``as_egg`` in your configuration file,
checkouted URLs will be registered as development eggs in your
buildout. This only work for non-recipe development eggs.

  *Pay attention*: if you add a new egg, this will trigger a new
  uninstall-reinstall cycle. You may want to use that option to setup
  eggs coming from SVN for production, but not for development.

Exported Variables
------------------

If you set::

  export_info = true

Two variables will be exported by this recipe:

- ``revisions`` which gives for each URL the corresponding revision
  number,

- ``updated`` which gives a list of URLs which have been updated with
  new code.

Since values to these variables changes each time you run buildout
(revision number changes), this trigger an uninstall/reinstall of the
part. We recommand to activate it only if you need it.

Is always exported a variable ``location`` to say where are done the
checkouts, and a variable ``eggs`` which contains a list of
checkouted eggs.

Sample
------

For an example buildout that uses this recipe, please see the `Silva
buildout &lt;https://svn.infrae.com/buildout/silva/trunk&gt;`_.

As well, the `doctest file
&lt;https://svn.infrae.com/buildout/infrae.subversion/trunk/infrae/subversion/tests/IMPL.txt&gt;`_
can provide more sample.

Latest version
--------------

The latest version is available in a `Subversion repository
&lt;https://svn.infrae.com/buildout/infrae.subversion/trunk#egg=infrae.subversion-dev&gt;`_.


Changes
-------

1.4 (unreleased)
~~~~~~~~~~~~~~~~

New features:

- Added ``location`` option that allows you to override the default
  /parts/partname location. [reinout]

- Added ``as_eggs`` option that installs the checkouts as development
  eggs. [reinout]

Bug fix:

- Don't export revisions information if you're offline with Py. Py
  tries to connect to the SVN repository to do a 'svn info'. [sylvain]

1.3.1
~~~~~

Bug fix:

- don't try to collect export information if you have a svn
  export. [sylvain]

- path were exported instead of URLs in the Native
  implementation. [sylvain]

1.3
~~~

- Remove the restriction to py 0.9.0, now that py 0.9.2 is out and fix
  problems on svn status with strange userid. [sylvain]

- Correct an error rendering. [sylvain]

- Export information only for top level svn URLs in the native
  implementation, this used to inject information from svn:externals
  links included in URL list. [sylvain]

- Add tests for export information feature. [tlotze]

- Correct URL in setup.py [sylvain].

1.2
~~~

- Refactor code, performances should be better at uninstall with Py
  implementation [sylvain].

- Look for the environment variable ``INFRAE_SUBVERSION_IMPL`` to
  select which implementation to use. Possible values are ``PYSVN``
  (default) and ``PY`` [sylvain].

- Uninstall only look at directory which have been created by the
  recipe in the part. Other are just reported [sylvain].

- Export two new variables, if ``export_info`` is set to true:

  ``revisions``

     Which is lines formatted::

        link current_revision

  ``updated``

     Which is lines containing updated links.


  [sylvain].

1.1
~~~

- Add the ``ignore_verification`` option [sylvain].

1.0
~~~

- Base version of the recipe.</description>
<homepage rdf:resource="https://svn.infrae.com/buildout/infrae.subversion/trunk/" />
<maintainer><foaf:Person><foaf:name>Eric Casteleijn, Guido Wesdorp, Daniel Nouri, Sylvain Viollon and Reinout van Rees</foaf:name>
<foaf:mbox_sha1sum>90cc96b92a8087569b0251b8eb659f719ea20847</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>1.4</revision></Version></release>
</Project></rdf:RDF>