'Run a VCS subcommand
This is simply a wrapper around call_subprocess that adds the VCS
command name, and checks that the VCS is available'

def run_command(self, cmd, show_stdout=True, cwd=None, on_returncode='raise', command_level=logging.DEBUG, command_desc=None, extra_environ=None, spinner=None):

    cmd = ([self.name] + cmd)
    try:
        return call_subprocess(cmd, show_stdout, cwd, on_returncode, command_level, command_desc, extra_environ, spinner)
    except OSError as e:
        if (e.errno == errno.ENOENT):
            raise BadCommand(('Cannot    find    command    %r' % self.name))
        else:
            raise
