[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Extensions for common requirements

From: Dirk Hoffmann <dh.discuss_at_web.de>
Date: 2005-05-12 11:34:15 CEST

Hi,

this posting is in reply to "Can you set properties on a file without
having it checked out?".

I opened a new thread as it adresses a broader range of problems.

In the system we are developing svn is accessed through automated
processes programmed in java. To make this possible svn's interfaces
needed to be extended. Here comes a collection of patches others may
find useful.

The patches are against version 1.1.0-rc2.

They are intended to give others some hints on how they can create their
own extensions not to be used directly.

Note that I'm not an expert on svn internals.

I've attached a tgz (hope it will make it to the list) containing a
directory structure with the two branches mod and new. new contains new
files and mod diffs to files that already existed in the original
sources (I don't like recursive diff). Both directories resemble the
directory structure of svn's sources.

The way the changes are applied to svn's sources aims at minimizing
modifications to the original source files to make patching new svn
versions as easy as possible.

(That's because I think some of those will never find their way into
subversion)

Of course I would be happy if the subversion developers reviewed this
stuff and maybe add parts of it to subversion.

Features:
---------

[libsvn_client]

New functions:

 * svn_client_rename()

This function does the same as svn_client_move with the following
exception:
If dst_path exists and is a directory this function raises an error
wheras snv_client_move would append the basename of src_path to
dst_path and take this as the destination path.

Added new argument to wc_to_wc_copy that controls if copying into
directories is allowed

 * svn_client_head_revision()

Return the numerical value of the head revision of the repository
containing the give resource

 * svn_client_repos_root()

Return the url of the repository containing the given resource

 * svn_client_put()

Copy local file into the repository without needing a local working
copy

 * svn_client_kind()

Get the node kind of specified files or URLs.

 * svn_client_prop_set()

Set a property without needing a local working copy

[clients/cmdline]

Added following commands:

put - see svn_client_put() above
rename - see svn_client_rename() above
kind - see svn_client_kind() above

[javahl]

Added following methods:

put - see svn_client_put() above
rename - see svn_client_rename() above
propertySet - see svn_client_prop_set() above
headRevision - see svn_client_head_revision() above
repositoryUrl - see svn_client_repos_root() above
nodeKind - see svn_client_kind() above

Feedback welcome.

Regards
Dirk Hoffmann

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Received on Thu May 12 11:39:13 2005

This is an archived mail posted to the Subversion Users mailing list.