org.opensolaris.opengrok.history
Class SubversionRepository

java.lang.Object
  extended by org.opensolaris.opengrok.history.Repository
      extended by org.opensolaris.opengrok.history.SubversionRepository

public class SubversionRepository
extends Repository

Access to a Subversion repository. TODO The current implementation does not support nested repositories as described in http://svnbook.red-bean.com/en/1.0/ch07s03.html


Field Summary
protected  java.lang.String reposPath
           
 
Constructor Summary
SubversionRepository()
           
 
Method Summary
 Annotation annotate(java.io.File file, java.lang.String revision)
          Annotate the specified revision of a file.
 boolean fileHasAnnotation(java.io.File file)
          Checks whether this parser can annotate files.
 boolean fileHasHistory(java.io.File file)
           
 java.lang.Class<? extends org.opensolaris.opengrok.history.HistoryParser> getDirectoryHistoryParser()
           
 java.io.InputStream getHistoryGet(java.lang.String parent, java.lang.String basename, java.lang.String rev)
          Get an input stream that I may use to read a speciffic version of a named file.
protected  java.lang.Process getHistoryLogProcess(java.io.File file)
          Get a handle to a svn log process for the given file.
 java.lang.Class<? extends org.opensolaris.opengrok.history.HistoryParser> getHistoryParser()
          Get a parser capable of getting history log elements from this repository.
 boolean isCacheable()
          Check whether the parsed history should be cached.
 boolean isWorking()
          Returns true if this repository is usable in this context (for SCM systems that use external binaries, the binary must be availabe etc)
 void setDirectoryName(java.lang.String directoryName)
          Specify the name of the root directory for this repository.
 void update()
          Update the content in this repository by pulling the changes from the upstream repository..
 
Methods inherited from class org.opensolaris.opengrok.history.Repository
getDirectoryName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

reposPath

protected java.lang.String reposPath
Constructor Detail

SubversionRepository

public SubversionRepository()
Method Detail

setDirectoryName

public void setDirectoryName(java.lang.String directoryName)
Description copied from class: Repository
Specify the name of the root directory for this repository.

Overrides:
setDirectoryName in class Repository
Parameters:
directoryName - the new name of the root directory

getHistoryLogProcess

protected java.lang.Process getHistoryLogProcess(java.io.File file)
                                          throws java.io.IOException
Get a handle to a svn log process for the given file.

Parameters:
file - THe file to get subversion log from
Returns:
A handle to the process, or null
Throws:
java.io.IOException - if an error occurs

getHistoryGet

public java.io.InputStream getHistoryGet(java.lang.String parent,
                                         java.lang.String basename,
                                         java.lang.String rev)
Description copied from class: Repository
Get an input stream that I may use to read a speciffic version of a named file.

Parameters:
parent - the name of the directory containing the file
basename - the name of the file to get
rev - the revision to get
Returns:
An input stream containing the correct revision.

getHistoryParser

public java.lang.Class<? extends org.opensolaris.opengrok.history.HistoryParser> getHistoryParser()
Description copied from class: Repository
Get a parser capable of getting history log elements from this repository.

Returns:
a specialized parser for this kind of repository

getDirectoryHistoryParser

public java.lang.Class<? extends org.opensolaris.opengrok.history.HistoryParser> getDirectoryHistoryParser()

annotate

public Annotation annotate(java.io.File file,
                           java.lang.String revision)
                    throws java.io.IOException
Description copied from class: Repository
Annotate the specified revision of a file.

Parameters:
file - the file to annotate
revision - revision of the file
Returns:
an Annotation object
Throws:
java.io.IOException - if an error occurs

fileHasAnnotation

public boolean fileHasAnnotation(java.io.File file)
Description copied from class: Repository
Checks whether this parser can annotate files.

Returns:
true if annotation is supported

isCacheable

public boolean isCacheable()
Description copied from class: Repository
Check whether the parsed history should be cached.

Returns:
true if the history should be cached

fileHasHistory

public boolean fileHasHistory(java.io.File file)

update

public void update()
            throws java.io.IOException
Description copied from class: Repository
Update the content in this repository by pulling the changes from the upstream repository..

Throws:
java.io.IOException

isWorking

public boolean isWorking()
Description copied from class: Repository
Returns true if this repository is usable in this context (for SCM systems that use external binaries, the binary must be availabe etc)

Overrides:
isWorking in class Repository
Returns:
true if the HistoryGuru may use the repository