Library to find tags and trunks in an svn repo
tha.tagfinder is a library for finding trunks and tags in an svn hierarchy. Including options for not descending into specific directories and so.
More details in src/tha/tagfinder/USAGE.txt .
Usage of tha.tagfinder
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 >>> 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'
- Nothing at the moment.
Changelog of tha.tagfinder
- Nothing changed yet.
- Updated test setup to use compattest. [reinout]
- Documentation cleanup. [reinout]
- Working around a difference when running the test from an svn checkout and when running them from a released egg. [reinout]
- 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]
- Preparing for pypi release by removing some internal The Health Agency development tools. [reinout]
- Updated documentation with a basic example in USAGE.txt. [reinout]
- Copied most of the original tha.taglist code, but cleaned up and tested. [reinout]
- Initial library skeleton created by thaskel. [reinout]