svn-spawn

    0.1.6 • Public • Published

    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

    Install

    npm i svn-spawn

    DownloadsWeekly Downloads

    293

    Version

    0.1.6

    License

    MIT

    Unpacked Size

    17 kB

    Total Files

    17

    Last publish

    Collaborators

    • avatar