Skip to content

ddliu/node-svn-spawn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

svn-spawn

npm npm Travis npm

Easy way to access svn repository with node.js.

Features

  • Easy to use
  • Fast way to add local changes
  • Query svn infomation as array or object
  • Common svn commands are all supported

Usage

Create a svn client instance

var Client = require('svn-spawn'); var client = new Client({ cwd: '/path to your svn working directory', username: 'username', // optional if authentication not required or is already saved password: 'password', // optional if authentication not required or is already saved noAuthCache: true, // optional, if true, username does not become the logged in user on the machine });

svn update

client.update(function(err, data) { console.log('updated'); });

svn info

client.getInfo(function(err, data) { console.log('Repository url is %s', data.url); });

Make some changes and commit all

client.addLocal(function(err, data) { console.log('all local changes has been added for commit'); client.commit('commit message here', function(err, data) { console.log('local changes has been committed!'); }); });

Single file

client.add('relative/path/to/file', function(err, data) { client.commit(['commit message here', 'relative/path/to/file'], function(err, data) { console.log('committed one file!'); }); });

Run any svn command

client.cmd(['subcommand', '--option1=xx', '--option2=xx', 'arg1', 'arg2'], function(err, data) { console.log('subcommand done'); });

Result Object

getXXX methods will return parsed data as object.

getInfo result example:

{ "$": { "path": ".", "revision": "1", "kind": "dir" }, "url": "file:///home/dong/projects/node-packages/node-svn-spawn/test/tmp/repo", "repository": { "root": "file:///home/dong/projects/node-packages/node-svn-spawn/test/tmp/repo", "uuid": "302eb8ee-a81a-4432-8477-1ad8fe3a9a1e" }, "wc-info": { "wcroot-abspath": "/home/dong/projects/node-packages/node-svn-spawn/test/tmp/copy", "schedule": "normal", "depth": "infinity" }, "commit": { "$": { "revision": "1" }, "author": "dong", "date": "2013-11-08T02:07:25.884985Z" } }

getLog result example:

[ { "$": { "revision": "1" }, "author": "dong", "date": "2013-11-08T02:10:37.656902Z", "msg": "init repo" }, ... ]

getStatus result example:

[ { "$": { "path": "a.txt" }, "wc-status": { "$": { "props": "none", "item": "modified", "revision": "1" }, "commit": { "$": { "revision": "1" }, "author": "dong", "date": "2013-11-08T02:17:20.390152Z" } } } ]

Requirements

You need to have the svn command installed.

Installation

npm install svn-spawn

About

Easy way to access svn repository with node.js.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •