Dump the repository to a dumpfile stream.

        :param stream: A file stream to which the dumpfile is written
        :param progress: A file stream to which progress is written
        :param lower: Must be a numeric version number
        :param upper: Must be a numeric version number

        See ``svnadmin help dump`` for details on the other arguments.

def dump(
        self, stream, progress=None, lower=None, upper=None,
        incremental=False, deltas=False
    ):
        """Dump the repository to a dumpfile stream.

        :param stream: A file stream to which the dumpfile is written
        :param progress: A file stream to which progress is written
        :param lower: Must be a numeric version number
        :param upper: Must be a numeric version number

        See ``svnadmin help dump`` for details on the other arguments.

        """
        cmd = [SVNADMIN, 'dump', '.']
        if progress is None:
            cmd.append('-q')
        if lower is not None:
            cmd.append('-r')
            if upper is None:
                cmd.append(str(int(lower)))
            else:
                cmd.append('%d:%d' % (int(lower), int(upper)))
        if incremental:
            cmd.append('--incremental')
        if deltas:
            cmd.append('--deltas')
        p = subprocess.Popen(cmd, cwd=self.path, stdout=stream, stderr=progress)
        p.wait()
        if p.returncode != 0:
            raise subprocess.CalledProcessError(p.returncode, cmd)