Creates a new Repo instance.

        :param url: Path or remote URL of new repo.
        :param clone_from: Path or URL of repo to clone from.
        :param bare: Create as bare repo.

        :returns: grit.Repo instance.

        For example:

            >>> r = Repo.new('/tmp/projects')
            >>> r
            <grit.Repo "/tmp/projects">

def new(self, url, clone_from=None, bare=True):
        """
        Creates a new Repo instance.

        :param url: Path or remote URL of new repo.
        :param clone_from: Path or URL of repo to clone from.
        :param bare: Create as bare repo.

        :returns: grit.Repo instance.

        For example:

            >>> r = Repo.new('/tmp/projects')
            >>> r
            <grit.Repo "/tmp/projects">

        """
        #note to self: look into using templates (--template)
        if clone_from:
            self.clone(path=url, bare=bare)
        else:
            if url.startswith('http'):
                proxy = Proxy(url)
                proxy.new(path=url, bare=bare)
            else:
                local = Local.new(path=url, bare=bare)
        return Repo(url)