def METHOD_NAME(self):
    """Report if it is safe to update a repository. Safe is defined as:
    * If a repository is empty, it is safe to update.
    * If a repository exists and has a clean working copy state
    with no pending transactions.
    """
    METHOD_NAME = False
    repo_exists = self.exists()
    if not repo_exists:
        METHOD_NAME = True
    else:
        # If the repo exists, it must be in ok or modified
        # sync_state. Any other sync_state at this point
        # represents a logic error that should have been handled
        # before now!
        sync_safe = ((self.sync_state == ExternalStatus.STATUS_OK) or
                     (self.sync_state == ExternalStatus.MODEL_MODIFIED))
        if sync_safe:
            # The clean_state must be STATUS_OK to update. Otherwise we
            # are dirty or there was a missed error previously.
            if self.clean_state == ExternalStatus.STATUS_OK:
                METHOD_NAME = True
    return METHOD_NAME