Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)