node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

grunt-svn-commander

grunt-svn-commander

Some useful SVN commands for your GruntJS builds.

Getting Started

This plugin requires Grunt 0.4.x

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-svn-commander --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-svn-commander');

The "svn_commander" task

Overview

In your project's Gruntfile, add a section named svn_commander to the data object passed into grunt.initConfig().

You must have SVN on the command-line for this task to work and you must have committed the target directory to your repo. Tested against svn 1.7.10.

grunt.initConfig({
  svn_commander: {
 
    ignoreSetter: {
        options: {
            type: 'ignore'
            ,doneCallback: function() {
                console.log( "all good" );
            }
        },
        rootDir: "test"
    }
 
  },
});

Options

options.type

Type: String Default value: ignore

A string value that is used to choose an svn command.

  • ignore will look inside the specified rootDir path for a config file (default name svnignore.config) and use that to set the svn:ignore property. Accepts options fileName (String) and doneCallback (Function).

  • props-clear will delete the specified svn properties on the specified rootDir. Accepts options doneCallback (Function), clearRecursively (Boolean) and propType (string).

  • command allows you to easily run a custom SVN command. Accepts only the cmd (string) option. rootDir is irrelevant in this task.

options.fileName

Type: String Default value: ignore

Specify a custom filename for the svn ignore config. Defaults to svnignore.config. Only for type = ignore.

options.doneCallback

Type: Function Default value: (empty function)

Specify a callback for when the task is done. Defaults to an empty function. For type of ignore or props-clear.

options.clearRecursively

Type: Booleam Default value: true

Specify fully recursive lookup for svn property clearage. Defaults to true. Only for type = props-clear.

options.propType

Type: string Default value: ignore

Specifiy svn property to clear. Defaults to ignore. Only for type = props-clear.

options.cmd

Type: string Default value: (A sample 'echo' message)

Specifiy a custom svn command. Defaults to a sample echo message. Only for type = command.

Usage Examples

svn_commander: {
 
  propsClearer: {
    options: {
      type: 'props-clear'
      ,propType: 'ignore'
      ,doneCallback: function() {
        console.log( "all props cleared" );
      }
    },
    rootDir: "test"
  }
 
  ,ignoreSetter: {
    options: {
      type: 'ignore'
      ,doneCallback: function() {
        console.log( "all ignore props set" );
      }
    },
    rootDir: "test"
  }
 
  ,runCommand: {
    options: {
      type: 'command'
      ,cmd: "echo 'running custom svn command\n'"
    }
  }
}

Release History

  • 0.1.8: Added support for arrays of svn clear props and defaulted to 'ignore' and 'externals'.
  • 0.1.7: Fixed the grunt.spawn issue with 'svn commit' not working and added more specific logs (coloured).
  • 0.1.6: Removed dot at the end of propset, as it was causing root to get unwanted props set.
  • 0.1.5: Ignore "node_modules" folder when setting svnprops.
  • 0.1.4: Added array of commands option and svn:externals option
  • 0.1.3: Minor readme changes.
  • 0.1.2: Passed tests on all tasks, but will need more real-world testing.
  • 0.1.1: Made some more progress but still not functional.
  • 0.1.0: Initial port over from grunt.jimd.utils. Still a work in progress.