'return a list of LogEntry instances for this path.
rev_start is the starting revision (defaulting to the first one).
rev_end is the last revision (defaulting to HEAD).
if verbose is True, then the LogEntry instances also know which files changed.'

def log(self, rev_start=None, rev_end=1, verbose=False):

    assert self.check()
    rev_start = (((rev_start is None) and 'HEAD') or rev_start)
    rev_end = (((rev_end is None) and 'HEAD') or rev_end)
    if ((rev_start == 'HEAD') and (rev_end == 1)):
        rev_opt = ''
    else:
        rev_opt = ('-r    %s:%s' % (rev_start, rev_end))
    verbose_opt = ((verbose and '-v') or '')
    xmlpipe = self._svnpopenauth(('svn    log    --xml    %s    %s    "%s"' % (rev_opt, verbose_opt, self.strpath)))
    from xml.dom import minidom
    tree = minidom.parse(xmlpipe)
    result = []
    for logentry in filter(None, tree.firstChild.childNodes):
        if (logentry.nodeType == logentry.ELEMENT_NODE):
            result.append(svncommon.LogEntry(logentry))
    return result
