Clone the repository to path (requires git).

        :param path: Destination filesystem path.
        :param bare: Make this a bare repo.

        :returns: grit.Repo instance.

        For example:

            >>> r = Repo("http://localhost/projects/a/b/c")
            >>> c = r.clone('/tmp')
            >>> c
            <grit.Repo "/tmp/c">

def clone(self, path=None, bare=False):
        """
        Clone the repository to path (requires git).

        :param path: Destination filesystem path.
        :param bare: Make this a bare repo.

        :returns: grit.Repo instance.

        For example:

            >>> r = Repo("http://localhost/projects/a/b/c")
            >>> c = r.clone('/tmp')
            >>> c
            <grit.Repo "/tmp/c">

        """
        #note to self: see --reference, --shared options
        if path is None:
            path = os.path.basename(url)
        try:
            self.git.clone(self.url, path, '--bare'*bare, '--depth=0')
            return Repo(path)
        except Exception, e:
            raise GritError(e)