node-svn-ultimate

The ultimate SVN wrapper for node. Contains all the basic methods checkout, update, info, etc, and includes svnmucc support.


Keywords
svn
License
MIT
Install
npm install node-svn-ultimate@1.2.1

Documentation

node-svn-ultimate

This project is no longer maintained

The ultimate SVN wrapper for node. Contains all the methods exposed by the command line svn tool, including checkout, update, info, etc, and includes svnmucc support.

Has methods for manipulating both working copies and the repo directly.

All direct svn command line functions are exposed through the commands object, and accept the same parameters as the command line tool.

Utility methods are provided through a util object.

npm install node-svn-ultimate --save

Example usage

var svnUltimate = require('node-svn-ultimate');

svnUltimate.commands.checkout( 'https://my.url/svn/repo', '/home/user/checkout', function( err ) {
	console.log( "Checkout complete" );
} );

svnUltimate.commands.update( '/home/user/checkout',
	{	// optional options object - can be passed to any command not just update
		trustServerCert: true,	// same as --trust-server-cert
		username: "username",	// same as --username
		password: "password",	// same as --password
		shell: "sh", 			// override shell used to execute command
		cwd: process.cwd(),		// override working directory command is executed
		quiet: true,			// provide --quiet to commands that accept it
		force: true,			// provide --force to commands that accept it
		revision: 33050,		// provide --revision to commands that accept it
		depth: "empty",			// provide --depth to commands that accept it
		ignoreExternals: true,	// provide --ignore-externals to commands that accept it
		params: [ '-m "Commit comment"' ], // extra parameters to pass
		'config-option': [
			'servers:global:http-proxy-host=proxy.someProxy.com',
			'servers:global:http-proxy-port=8080',
		] // provide --config-option to commands that accept it.  Use an array for multiple config options
	},
	function( err ) {
		console.log( "Update complete" );
	} );

Utility methods

// Gets the working copy revision or the HEAD revision if the target is a URL
svnUltimate.util.getRevision( 'https://my.url/svn/repo', function( err, revision ) {
	console.log( "Head revision=" + revision );
} );

var obj = svnUltimate.util.parseUrl( 'https://my.url/svn/repo/trunk' );
// this call will return an object comprising of
obj = {
	rootUrl: 'https://my.url/svn/repo',
	type: 'trunk', // either trunk, tags, or branches
	typeName: '1.3.5' // only populated if a tag or a branch, name of the tag or branch
	trunkUrl: 'https://my.url/svn/repo/trunk',
	tagsUrl: 'https://my.url/svn/repo/tags',
	branchesUrl: 'https://my.url/svn/repo/branches'
};


svnUltimate.util.getTags( 'https://my.url/svn/repo/trunk', function( err, tagsArray ) {
	// tagsArray will be an array of strings containing all tag names
} );

svnUltimate.util.getLatestTag( 'https://my.url/svn/repo/trunk', function( err, latestTag ) {
	// latestTag will be the most recent tag, worked out by semver comparison (not the date it was created)
} );

Methods

commands : object

Exposes the commands for the command line svn tool.

util : object

Exposes some custom utility methods

commands : object

Exposes the commands for the command line svn tool.

Kind: global namespace

commands.checkout(url, dir, [options], [callback])

Checks out a repository to a working copy

Kind: static method of commands

Param Type Description
url string Repository URL
dir string Working copy dir
[options] object Options object
[callback] function Complete callback

commands.add(files, [options], [callback])

Adds a file / folder to a working copy

Kind: static method of commands

Param Type Description
files Array | string Add given files / folders
[options] object Options object
[callback] function Complete callback

commands.cat(targets, [options], [callback])

Gets the content of a file from either a working copy or a URL.

Kind: static method of commands

Param Type Description
targets Array | string Array of URLs or working copy files to catalogue
[options] object Options object
[callback] function Complete callback

commands.cleanup(wc, [options], [callback])

Performs an svn cleanup operation on the working copy

Kind: static method of commands

Param Type Description
wc string Working copy directory to clean
[options] object Options object
[callback] function Complete callback

commands.commit(files, [options], [callback])

Commits a working copy to a repository

Kind: static method of commands

Param Type Description
files Array | string Array of files / folders to commit
[options] object Options object
[callback] function Complete callback

commands.copy(srcs, dst, [options], [callback])

Copies a file / folder within either a working copy or a URL

Kind: static method of commands

Param Type Description
srcs Array | string URLs / files to copy
dst string destination
[options] object Options object
[callback] function Complete callback

commands.del(srcs, [options], [callback])

Deletes a file/folder from either a working copy or a URL

Kind: static method of commands

Param Type Description
srcs Array | string Array of URLs / files to delete
[options] object Options object
[callback] function Complete callback

commands.export(src, dst, [options], [callback])

Exports a file from the repository to a local file

Kind: static method of commands

Param Type Description
src string Source URL
dst string Destination file
[options] object Options object
[callback] function Complete callback

commands.import(src, dst, [options], [callback])

Imports a file to the repository

Kind: static method of commands

Param Type Description
src string Source file
dst string Destination URL
[options] object Options object
[callback] function Complete callback

commands.info(targets, [options], [callback])

Performs an svn info command on a given working copy file / URL

Kind: static method of commands

Param Type Description
targets Array | string Target URLs / files to info
[options] object Options object
[callback] function Complete callback

commands.list(targets, [options], [callback])

Lists the files within a directory, either working copy or URL

Kind: static method of commands

Param Type Description
targets Array | string Target URLs / files to list
[options] object Options object
[callback] function Complete callback

commands.lock(targets, [options], [callback])

Locks a file in a working copy / repository

Kind: static method of commands

Param Type Description
targets Array | string Target URLs / files to lock
[options] object Options object
[callback] function Complete callback

commands.log(targets, [options], [callback])

Gets the SVN message log and returns as a JSON object

Kind: static method of commands

Param Type Description
targets Array | string Target URLs / files to get logs for
[options] object Options object
[callback] function Complete callback

commands.merge(targets, [options], [callback])

Apply the differences between two sources to a working copy path

Kind: static method of commands

Param Type Description
targets Array | string Target URLs
[options] object Options object
[callback] function Complete callback

commands.mergeinfo(source, target, [options], [callback])

Query information related to merges (or potential merges) between SOURCE and TARGET.

Kind: static method of commands

Param Type Description
source string SOURCE URL
target string TARGET URL
[options] object Options object
[callback] function Complete callback

commands.mkdir(targets, [options], [callback])

Creates a directory in the working copy or repository

Kind: static method of commands

Param Type Description
targets Array | string Target URLs / folders to create
[options] object Options object
[callback] function Complete callback

commands.move(srcs, dst, [options], [callback])

Moves a file / folder in a working copy or URL

Kind: static method of commands

Param Type Description
srcs Array | string Target URLs / files to move
dst string Destination URL / file
[options] object Options object
[callback] function Complete callback

commands.propdel(propName, target, [options], [callback])

Deletes an svn property from a working copy / repository

Kind: static method of commands

Param Type Description
propName string Property name
target string Target file / folder or URL
[options] object Options object
[callback] function Complete callback

commands.propget(propName, targets, [options], [callback])

Gets an svn property from a working copy / repository

Kind: static method of commands

Param Type Description
propName string Property name
targets Array | string Target file / folder or URL
[options] object Options object
[callback] function Complete callback

commands.proplist(targets, [options], [callback])

Lists svn properties from a working copy / repository

Kind: static method of commands

Param Type Description
targets Array | string Target file / folder or URL
[options] object Options object
[callback] function Complete callback

commands.propset(propName, propVal, wc, [options], [callback])

Sets an svn property from a working copy / repository

Kind: static method of commands

Param Type Description
propName string Property name
propVal string Property value
wc string Target file / folder or URL
[options] object Options object
[callback] function Complete callback

commands.relocate(url, wc, [options], [callback])

Relocates an svn working copy

Kind: static method of commands

Param Type Description
url string Relocation URL
wc string Working copy to relocate
[options] object Options object
[callback] function Complete callback

commands.revert(wc, [options], [callback])

Reverts files / folders in a working copy to their uncommited state

Kind: static method of commands

Param Type Description
wc string Working copy target
[options] object Options object
[callback] function Complete callback

commands.status(wc, [options], [callback])

Performs an svn status command on a working copy

Kind: static method of commands

Param Type Description
wc string Working copy target
[options] object Options object
[callback] function Complete callback

commands.switch(url, wc, [options], [callback])

Switches to a given branch / tag for a working copy

Kind: static method of commands

Param Type Description
url string Switch URL
wc string Working copy target
[options] object Options object
[callback] function Complete callback

commands.unlock(targets, [options], [callback])

Unlocks a previously locked svn file from a working copy / repository

Kind: static method of commands

Param Type Description
targets Array | string Working copy / URL targets
[options] object Options object
[callback] function Complete callback

commands.update(wcs, [options], [callback])

Updates an svn working copy

Kind: static method of commands

Param Type Description
wcs Array | string Working copy targets
[options] object Options object
[callback] function Complete callback

commands.upgrade(wcs, [options], [callback])

Upgrades a given svn working copy (requires v1.7 of svn client)

Kind: static method of commands

Param Type Description
wcs Array | string Working copy targets
[options] object Options object
[callback] function Complete callback

commands.mucc(commandArray, commitMessage, [options], [callback])

Executes svnmucc command, for multiple commands

Kind: static method of commands
See: http://svnbook.red-bean.com/en/1.8/svn.ref.svnmucc.re.html

Param Type Description
commandArray Array Array of command strings, see above link for options
commitMessage string Commit message to use
[options] object Options object
[callback] function Complete callback

util : object

Exposes some custom utility methods

Kind: global namespace

util.getRevision(target, [options], [callback])

Gets head revision of a given URL

Kind: static method of util

Param Type Description
target string Target URL
[options] object Options object
[callback] function Complete callback

util.getWorkingCopyRevision(wcDir, [options], [callback])

Gets the revision of a working copy.

Kind: static method of util

Param Type Description
wcDir string Working copy folder
[options] object Options object
[callback] function Complete callback

util.parseUrl(url) ? object

Parse a url for an SVN project repository and breaks it apart

Kind: static method of util

Param Type Description
url string URL to parse

util.getTags(url, [options], [callback])

Gets all available tags for the given svn URL

Kind: static method of util

Param Type Description
url string Project URL to get tags for
[options] object Options object
[callback] function Complete callback

util.getLatestTag(url, options, [callback])

Uses node's semver package to work out the latest tag value

Kind: static method of util

Param Type Description
url string Project URL to get latest tag for
options object Options object
[callback] function Complete callback

util.getBranches(url, [options], [callback])

Gets all available branches for the given svn URL

Kind: static method of util

Param Type Description
url string Project URL to get branches for
[options] object Options object
[callback] function Complete callback