code: function getCommitTask(cm, ns, pv, noVerbose) {
  	var hcm = typeof cm === 'string';
  	var ct = commitTasks[ns];
  	if (!ct || hcm || cm === true) {
  		var env = genEnvOptions(hcm ? cm : null);
  		var commit = committer.init(env.pluginName, globalOpts.regexLines, env, ns ? null : undefined, ns, pv,
  				noVerbose);
  		commitTasks[ns] = {
  			commit : commit,
  			commitOpts : env,
  			defaultTaskOptions : genTaskOptions(env),
  			namespace : ns
  		};
  	}
  	return commitTasks[ns];
  }
docs: Gets or creates a commit task object that contains a commit object from a
  predefined set of cooperative options along with the defaultTaskOptions for
  that Commit (internal use)
  
  @param cm
  alternative commit message from the extracted one (can be true to
  force initialization of a new Commit)
  @param ns
  an optional name space to give the commit task
  @param pv
  optional previous version (overrides previous version capture, but
  will not cause recreation of existing commit task)
  @param verbose
  true to prevent logging of detailed information about any
  generated commit and commit environment (when applicable)
  @returns commit task