def pull_again(self, repo: Optional[str]=None, branch: Optional[str]=None) -> None:
if repo is None and branch is None:<EOL><INDENT>self._current_hashes = {}<EOL><DEDENT>elif repo is None:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>elif branch is None and repo is not None:<EOL><INDENT>self._current_hashes.pop(self.repo_id(repo), None)<EOL><DEDENT>else:<EOL><INDENT>repo_id = self.repo_id(repo)<EOL>try:<EOL><INDENT>self._current_hashes[repo_id].pop(branch)<EOL><DEDENT>except KeyError:<EOL><INDENT>pass<EOL><DEDENT><DEDENT>
When ``single_pull`` is enables, tells Arca to pull again.

        If ``repo`` and ``branch`` are not specified, pull again everything.

        :param repo: (Optional) Pull again all branches from a specified repository.
        :param branch: (Optional) When ``repo`` is specified, pull again only this branch from that repository.

        :raise ValueError: If ``branch`` is specified and ``repo`` is not.