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.

svn.utility.get_client is provided for convenience. If you provide a location that starts with a backslash, it will return a LocalClient instance. Otherwise, it will return a RemoteClient instance.

LocalClient

LocalClient allows access to a local working copy.

  • export(path)

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()),
  'commit_author': None,
  'commit_date': datetime.datetime(2014, 4, 1, 5, 50, 27, 826988, tzinfo=tzutc()),
  'commit_revision': 0,
  'entry#kind': 'dir',
  'entry#path': 'working_copy',
  'entry#revision': 0,
  'entry_kind': 'dir',
  'entry_path': 'working_copy',
  'entry_revision': 0,
  'relative_url': '^/',
  'repository/root': 'file:///Users/dustin/development/python/svn/test/repo',
  'repository/uuid': '48195b71-8d94-4528-a019-ec81ebc7e65a',
  'repository_root': 'file:///Users/dustin/development/python/svn/test/repo',
  'repository_uuid': '48195b71-8d94-4528-a019-ec81ebc7e65a',
  'url': 'file:///Users/dustin/development/python/svn/test/repo',
  'wc-info/depth': None,
  'wc-info/schedule': None,
  'wc-info/wcroot-abspath': None,
  'wcinfo_depth': None,
  'wcinfo_schedule': None,
  'wcinfo_wcroot_abspath': None }

RemoteClient

RemoteClient allows access to a remote repository.

  • checkout(path)

  • export(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()

  • 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.33.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

svn-0.3.33-py2-none-any.whl (14.0 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for svn-0.3.33.tar.gz
Algorithm Hash digest
SHA256 a428dd16eef0c18bf4224034df4d5d4deb96a0f8d2288e219bfde79608008f53
MD5 fdb5738c20c801ce5ae420042a76d2d3
BLAKE2b-256 bf6b2deaae2eb95bc1eb9f5771aeb00172304724cfb930e83c39f66763df3e24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for svn-0.3.33-py2-none-any.whl
Algorithm Hash digest
SHA256 4a97981c0e326c7444fd7736a755017118ac9e1ade5191de53652f48805e3541
MD5 f81eca0a4fd3b9613283429f12558bf2
BLAKE2b-256 44ce0c740edec791920897e5b017649b71c3de38d0b88e5647a7574818e5fca8

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