Skip to main content

Intuitive Subversion wrapper.

Project description

Introduction

svn is a simple Subversion library for Python. I wrote it so that there could be a lightweight and accessible library that was also available on PyPI. It is compatible with both Python 2.7 and 3.3+.

I’ve only implemented the functionality that I have required:

  • Listing entries

  • Getting info

  • Getting log

  • Checking-out

  • Exporting

You are more than welcome to submit pull-requests to add more support for additional subcommands.

Usage

Usage is divided between two clients that either allow for access to a local working-directory or a remote repository.

Both clients inherit a common set of methods that work with both local working-directories and remote repositories.

LocalClient

LocalClient allows access to a local working copy.

Example LocalClient usage:

import svn.local
import pprint

r = svn.local.LocalClient('/dev/repo')
r.export('/tmp/export')

pprint.pprint(r.info())

Output:

{'commit#revision': 0,
 'commit/author': None,
 'commit/date': datetime.datetime(2014, 4, 1, 5, 50, 27, 826988, tzinfo=tzutc()),
 'entry#kind': 'dir',
 'entry#path': 'working_copy',
 'entry#revision': 0,
 'relative_url': '^/',
 'repository/root': 'file:///svn/test/repo',
 'repository/uuid': '48195b71-8d94-4528-a019-ec81ebc7e65a',
 'url': 'file:///svn/test/repo',
 'wc-info/depth': 'infinity',
 'wc-info/schedule': 'normal',
 'wc-info/wcroot-abspath': '/svn/dev/working_copy'}

RemoteClient

RemoteClient allows access to a remote repository.

  • checkout(path)

Example RemoteClient usage:

import svn.remote

r = svn.remote.RemoteClient('https://repo.local/svn')
r.checkout('/tmp/working')

Common Functionality

These methods are available on both clients.

  • info()

  • export(path)

  • cat(rel_filepath)

  • log_default(timestamp_from_dt=None, timestamp_to_dt=None, limit=None)

Important

Previously, the LocalClient and RemoteClient classes were exposed at the package level:

  • svn.LocalClient

  • svn.RemoteClient

Unfortunately, this interfered with dependency management during installation. The imports will now have to be, respectively:

  • svn.local (for LocalClient)

  • svn.remote (for RemoteClient)

We’re sorry for the inconvenience.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

svn-0.3.19.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

svn-0.3.19-py2-none-any.whl (12.2 kB view details)

Uploaded Python 2

File details

Details for the file svn-0.3.19.tar.gz.

File metadata

  • Download URL: svn-0.3.19.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for svn-0.3.19.tar.gz
Algorithm Hash digest
SHA256 71f19f49b608c62a16268cbc161b5b0bc5cf36e4bed84c05644b10fff4a76ba6
MD5 a0b3d460fb4ebb74ec1cb7367f55f62c
BLAKE2b-256 8282675278ea87460cd1e119ffd9eb6ce95058597917d849d0c2215b1703eb18

See more details on using hashes here.

File details

Details for the file svn-0.3.19-py2-none-any.whl.

File metadata

File hashes

Hashes for svn-0.3.19-py2-none-any.whl
Algorithm Hash digest
SHA256 22fb0e494b64e3c6c272092bd51ad9d479912110fd3aa193078196d3e9591a5e
MD5 5429c08d860bb0611569c18af37ccee0
BLAKE2b-256 d0a5c9107463667d644bdadd23a320b220880a7d95da20abfad993477dddf0cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page