tha.tagfinder 1.2
Library to find tags and trunks in an svn repo
License: BSD

tha.tagfinder
=============

tha.tagfinder is a library for finding trunks and tags in an svn hierarchy.
Including options for not descending into specific directories and so.

Made by `Reinout van Rees <http://reinout.vanrees.org>`_ at `The Health Agency
<http://www.thehealthagency.com>`_. 

More details in src/tha/tagfinder/USAGE.txt .


Usage of tha.tagfinder
======================

.. :doctest:

The goal of tha.tagfinder is to traverse though an svn structure and return
tags and trunks.

Three imports are needed:

    >>> from tha.tagfinder import extracter
    >>> from tha.tagfinder import finder
    >>> from tha.tagfinder import lister

You need a startpoint, which is either an svn url or a directory name.  Our
test fixture provides an svn repository:

    >>> repo_url
    'file://.../repo'

Give your startpoint to a lister, in this case an SvnLister, with an optional
list of directory names that should be ignored:

    >>> startpoint = lister.SvnLister(repo_url, ignore=['sandbox'])

Choose an extractor.  Normally the BaseExtracter, but you can subclass it:

    >>> info_extracter = extracter.BaseExtracter

Lastly, set up a finder with the startpoint and the extractor.  Optionally
pass in stop_indicators that, when found in a directory, will stop the finder
from recursing in that directory:

    >>> info = finder.Finder(startpoint, info_extracter,
    ...                      stop_indicators=[])

The main usage is to query this info object for the projects it has found:

    >>> print(info.projects)
    [<tha.tagfinder.extracter.BaseExtracter object at ...,
     <tha.tagfinder.extracter.BaseExtracter object at ...]

Every project object has attributes that are provided by the extracter.  So
subclass the extracter if you need extra attributes of your own:

    >>> project = info.projects[1]
    >>> project.name
    'project1'
    >>> project.location
    'file://.../repo/project1'
    >>> project.tags
    ['0.1', '0.2', '0.3-bugfix']
    >>> project.tag_location('0.2')
    'file://.../repo/project1/tags/0.2'


TODO
====

- Nothing at the moment.


Changelog of tha.tagfinder
==========================

1.2 (2009-12-18)
----------------

- Nothing changed yet.


1.1 (2009-12-18)
----------------

- Updated test setup to use compattest.  [reinout]

- Documentation cleanup.  [reinout]


1.0 (2009-10-06)
----------------

- Working around a difference when running the test from an svn checkout and
  when running them from a released egg.  [reinout]


0.4 (2009-10-06)
----------------

- Fixed test-all setup.  [reinout]

- Added small files to currently-empty directories in the test fixture to
  prevent them from being omitted in the egg.  [reinout]


0.3 (2009-10-05)
----------------

- Preparing for pypi release by removing some internal The Health Agency
  development tools.  [reinout]


0.2 (2009-10-05)
----------------

- Updated documentation with a basic example in USAGE.txt.  [reinout]


0.1 (2009-10-05)
----------------

- Copied most of the original tha.taglist code, but cleaned up and tested.
  [reinout]

- Initial library skeleton created by thaskel.  [reinout]