Ejemplo n.º 1
0
def twiki_revision_generator(filename):
    """generate all revisions of the file, in reverse order, clearing
    out stupid metadata and fake revisions."""
    head, deltas = parse_rcs_file(filename)
    lines = deltas[head]['text']
    next = deltas[head]['next']

    yield deltas[head], ''.join(twiki_clean(lines)[0])
    while next:
        d = deltas[next]
        apply_delta(lines, d['text'])
        yield d, ''.join(twiki_clean(lines)[0])
        next = d['next']
Ejemplo n.º 2
0
def twiki_revision_generator(filename):
    """generate all revisions of the file, in reverse order, clearing
    out stupid metadata and fake revisions."""
    head, deltas = parse_rcs_file(filename)
    lines = deltas[head]['text']
    next = deltas[head]['next']

    yield deltas[head], ''.join(twiki_clean(lines)[0])
    while next:
        d = deltas[next]
        apply_delta(lines, d['text'])
        yield d, ''.join(twiki_clean(lines)[0])
        next = d['next']
Ejemplo n.º 3
0
def extract(filename, rfilter=None):
    """Find unique revisions of the file, and the relevant metadata.
    Most attached metadata is not relevant, and is binned.  In many
    cases the file is unchanged except for this useless metadata, so
    the revision is a false one.  We purge those.
    """
    versions = []
    for revision in revision_list(filename):
        if rfilter is not None and not rfilter(revision):
            continue

        callee = Popen(
            ["co", "-p", "-r" + revision.revision, "-q", "-ko", filename],
            stdout=PIPE)

        data, meta = twiki_clean(callee.stdout)

        # many revisions are identical execpt for metadata. Ignore those.
        revision.contents = ''.join(data)
        if not versions:
            versions.append(revision)
        elif revision.contents == versions[-1].contents:
            #because the revisions are being generated in reverse order
            versions[-1] = revision
        else:
            versions.append(revision)

    return versions
Ejemplo n.º 4
0
def extract(filename, rfilter=None):
    """Find unique revisions of the file, and the relevant metadata.
    Most attached metadata is not relevant, and is binned.  In many
    cases the file is unchanged except for this useless metadata, so
    the revision is a false one.  We purge those.
    """
    versions = []
    for revision in revision_list(filename):
        if rfilter is not None and not rfilter(revision):
            continue

        callee = Popen(["co", "-p", "-r" + revision.revision,
                        "-q", "-ko",
                        filename
                       ],
                      stdout=PIPE)

        data, meta = twiki_clean(callee.stdout)

        # many revisions are identical execpt for metadata. Ignore those.
        revision.contents = ''.join(data)
        if not versions:
            versions.append(revision)
        elif revision.contents == versions[-1].contents:
            #because the revisions are being generated in reverse order
            versions[-1] = revision
        else:
            versions.append(revision)


    return versions