<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_repo(url, vcs, **kwargs):
 r"""Return a object representation of a VCS repository. :returns: instance of a repository object :rtype: :class:`libvcs.svn.SubversionRepo`, :class:`libvcs.git.GitRepo` or :class:`libvcs.hg.MercurialRepo`. Usage Example:: |myrepo| (git) Repo directory for myrepo (git) does not exist @ \ /tmp/myrepo |myrepo| (git) Cloning. |myrepo| (git) git clone https://www.github.com/tony/myrepo \ /tmp/myrepo |myrepo| (git) git fetch |myrepo| (git) git pull Already up-to-date. """

    if vcs == 'git':
        return GitRepo(url, **kwargs)
    elif vcs == 'hg':
        return MercurialRepo(url, **kwargs)
    elif vcs == 'svn':
        return SubversionRepo(url, **kwargs)
    else:
        raise InvalidVCS('VCS %s is not a valid VCS' % vcs)