wiki:SvnCliRemotePlugin

Version 6 (modified by Cinc-th, 3 years ago) (diff)

Information update after renaming connector types and enabling caching

Subversion connector for remote and local repositories using the svn command line client

Description

This plugin allows you to connect to remote and/or local subversion repositories. It uses the subversion command line client svn so no subversion-python bindings need to be installed which sometimes can be a daunting task.

The plugin provides a connector with caching and a direct connector without.

The latter is useful if you want to quickly or maybe just temporarily provide access to a (remote) repository. Initial viewing of large trees with the direct connector is slow especially for remote Http:/Https: repositories like https://trac-hacks.org/svn. Same for very large changesets. Nevertheless working with subtrees (like https://trac-hacks.org/svn/peerreviewplugin) is going well.

Status

The following bugs are known:

  • Context navigation for Next Revision doesn't work
  • No caching for subtree repositories (local mirrors of subtrees do work, though)

The plugin was tested with Subversion 1.10.3.

Bugs/Feature Requests

Existing bugs and feature requests for SvnCliRemotePlugin are here.

If you have any issues, create a new ticket.

defect

0 / 1

Note:

Without access to the repository it's difficult or even impossible to debug any problems. So try to provide a link to a public repository showing the bug when creating a bugreport.

Download

Download the zipped source from here.

Source

You can check out SvnCliRemotePlugin from here using Subversion, or browse the source with Trac.

Installation

General instructions on installing Trac plugins can be found on the TracPlugins page.

Enable the plugin from the Trac plugin admin page or by adding the following to your trac.ini file:

[components]
subversioncli.svn_cli.* = enabled

The subversion client svn must be in your path.

Configuration

Use the Trac repository admin page to configure a repository.

There are two connector types available:

  • svn-cli caching connector for local and remote repositories
  • svn-cli-direct direct connector for local and remote repositories

Local repository

For local repositories you have to provide an absolute path to the repository directory.

/path/to/local/repo

or when using Windows

x:/path/to/local/repo

Remote repository

There is no native support for remote subversion repositories in Trac. The admin page checks if an entered path is a local one, more specifically if it's an absolute one. The path doesn't have to exist, though.

We have to trick Trac into accepting a Url by prepending it with a slash / (or x:/ when running Trac on Windows) like this:

/https://trac-hacks.org/svn

or

x:/https://trac-hacks.org/svn

Subtree as repository

You may create a repository for a subtree of some larger repository. This may be useful if a repository contains a lot of independent projects like for example here at https://trac-hacks.org.

As an example use this directory path to create a repository for the project PeerReviewPlugin:

/https://trac-hacks.org/svn/peereviewplugin

Chose svn-cli-direct as connector.

There is currently no caching available for remote subtree repositories. You have to mirror a subtree to your local system using svnsync if you need caching. See here: https://trac.edgewall.org/wiki/TracMigrate#SubversionReplication

Hints

Set the following in your trac.ini:

[timeline]
changeset_show_files = 0

This speeds up the display of the timeline because less information must be queried.

Recent Changes

18272 by Cinc-th on 2021-05-01 10:10:23
SvnCliRemotePlugin: again fixes to svn path handling. This mostly reverts [18259] which actually broke some feature. Now the path handling should really be the same as Tracs default...
18259 by Cinc-th on 2021-04-23 10:24:02
SvnCliRemotePlugin: some fixes to svn path handling. The plugin now returns the same path information as Tracs svn_fs plugin. Fixes for Python 3.
18090 by Cinc-th on 2021-03-24 12:30:24
SvnCliRemotePlugin: some refactoring and removal of obsolete code.
(more)

Author/Contributors

Author: Cinc-th
Maintainer: Cinc-th
Contributors: