Example usage for org.apache.commons.jrcs.rcs Archive getRevision

List of usage examples for org.apache.commons.jrcs.rcs Archive getRevision

Introduction

In this page you can find the example usage for org.apache.commons.jrcs.rcs Archive getRevision.

Prototype

public Object[] getRevision(Version vernum, boolean annotate)
        throws InvalidFileFormatException, PatchFailedException, NodeNotFoundException 

Source Link

Document

Get the text belonging to the revision identified by the given version number.

Usage

From source file:org.opensolaris.opengrok.history.RCSRepository.java

static Annotation annotate(File file, String revision, File rcsFile) throws IOException {
    try {/*from ww w. ja  v a  2s .c  o m*/
        Archive archive = new Archive(rcsFile.getPath());
        // If revision is null, use current revision
        Version version = revision == null ? archive.getRevisionVersion()
                : archive.getRevisionVersion(revision);
        // Get the revision with annotation
        archive.getRevision(version, true);
        Annotation a = new Annotation(file.getName());
        // A comment in Archive.getRevisionNodes() says that it is not
        // considered public API anymore, but it works.
        for (Node n : archive.getRevisionNodes()) {
            String rev = n.getVersion().toString();
            String author = n.getAuthor();
            a.addLine(rev, author, true);
        }
        return a;
    } catch (ParseException pe) {
        throw wrapInIOException("Parse exception annotating RCS repository", pe);
    } catch (InvalidFileFormatException iffe) {
        throw wrapInIOException("File format exception annotating RCS repository", iffe);
    } catch (PatchFailedException pfe) {
        throw wrapInIOException("Patch failed exception annotating RCS repository", pfe);
    }
}