def push_repo_to_remote(self): """Pushes the local repo to the remote server. Note: This will set `_can_push_repo_to_remote` and `_remote_repo_valid` False in order to prevent the user calling this method twice in succession. Raises: :class:`~dls_ade.exceptions.VerificationError`: Local repository \ cannot be pushed to remote. :class:`~dls_ade.exceptions.VCSGitError`: If issue with adding a \ new remote and pushing. """ self.verify_can_push_repo_to_remote() self._can_push_repo_to_remote = False self._remote_repo_valid = False vcs_git.add_new_remote_and_push(self._server_repo_path, self.abs_module_path)
def set_server_repo_to_default(self): """Sets the given server repository to a default state. Note: If used on an existing server repository, all commit history will be overwritten. Raises: :class:`.SettingsError`: If default given but no server repo. :class:`dls_ade.exceptions.VCSGitError`: From \ :mod:`~dls_ade.vcs_git` functions. """ if not self._default_server_repo_path: return if not self._server_repo_path: raise SettingsError("If 'default_server_repo_path is set, then " "'server_repo_path' must also be set.") logging.debug("Setting server repo to default.") logging.debug("'Default' server repo path: " + self._default_server_repo_path) temp_repo = vcs_git.temp_clone(self._default_server_repo_path) vcs_git.delete_remote(temp_repo.working_tree_dir, "origin") if vcs_git.is_server_repo(self._server_repo_path): temp_repo.create_remote( "origin", os.path.join(vcs_git.GIT_SSH_ROOT, self._server_repo_path) ) temp_repo.git.push("origin", temp_repo.active_branch, "-f") else: vcs_git.add_new_remote_and_push(self._server_repo_path, temp_repo.working_tree_dir)