'Prepare a location to receive a checkout/clone.
Return True if the location is ready for (and requires) a
checkout/clone, False otherwise.'

def check_destination(self, dest, url, rev_options, rev_display):

    checkout = True
    prompt = False
    if os.path.exists(dest):
        checkout = False
        if os.path.exists(os.path.join(dest, self.dirname)):
            existing_url = self.get_url(dest)
            if self.compare_urls(existing_url, url):
                logger.info(('%s    in    %s    exists,    and    has    correct    URL    (%s)' % (self.repo_name.title(), display_path(dest), url)))
                logger.notify(('Updating    %s    %s%s' % (display_path(dest), self.repo_name, rev_display)))
                self.update(dest, rev_options)
            else:
                logger.warn(('%s    %s    in    %s    exists    with    URL    %s' % (self.name, self.repo_name, display_path(dest), existing_url)))
                prompt = ('(s)witch,    (i)gnore,    (w)ipe,    (b)ackup    ', ('s', 'i', 'w', 'b'))
        else:
            logger.warn(('Directory    %s    already    exists,    and    is    not    a    %s    %s.' % (dest, self.name, self.repo_name)))
            prompt = ('(i)gnore,    (w)ipe,    (b)ackup    ', ('i', 'w', 'b'))
    if prompt:
        logger.warn(('The    plan    is    to    install    the    %s    repository    %s' % (self.name, url)))
        response = ask_path_exists(('What    to    do?        %s' % prompt[0]), prompt[1])
        if (response == 's'):
            logger.notify(('Switching    %s    %s    to    %s%s' % (self.repo_name, display_path(dest), url, rev_display)))
            self.switch(dest, url, rev_options)
        elif (response == 'i'):
            pass
        elif (response == 'w'):
            logger.warn(('Deleting    %s' % display_path(dest)))
            rmtree(dest)
            checkout = True
        elif (response == 'b'):
            dest_dir = backup_dir(dest)
            logger.warn(('Backing    up    %s    to    %s' % (display_path(dest), dest_dir)))
            shutil.move(dest, dest_dir)
            checkout = True
    return checkout
