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']
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
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