/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* See LICENSE.txt included in this distribution for the specific
* language governing permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at LICENSE.txt.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*/
/**
* Access to a local CVS repository.
*/
/** The property name used to obtain the client command for repository. */
"org.opensolaris.opengrok.history.cvs";
/** The command to use to access the repository if none was given explicitly */
public CVSRepository() {
type = "CVS";
datePattern = "yyyy-MM-dd hh:mm:ss";
}
public boolean isWorking() {
}
return working.booleanValue();
}
return cvsFile;
}
return null;
}
if (file.isDirectory()) {
return cvsDir.isDirectory();
}
return false;
}
}
}
/**
* Get an executor to be used for retrieving the history log for the
* named file.
*
* @param file The file to retrieve history for
* @return An Executor ready to be started
*/
}
try {
try {
"Failed to get revision tag of {0}",
} finally {
}
} catch (IOException ex){
}
}
}
{
//just generate THIS branch history, we don't care about the other
// branches which are not checked out
}
}
}
{
}
try {
int len;
if (len > 0) {
}
}
} finally {
// Clean up zombie-processes...
try {
} catch (IllegalThreadStateException exp) {
// the process is still running??? just kill it..
}
}
}
return ret;
}
return true;
}
// @TODO: Research how to cheaply test if a file in a given
// CVS repo has history. If there is a cheap test, then this
// code can be refined, boosting performance.
return true;
}
}
}
if (status != 0) {
"Failed to get annotations for: \"{0}\" Exit code: {1}",
}
}
throws IOException
{
int lineno = 0;
boolean hasStarted = false;
// Skip header
{
continue;
}
hasStarted = true;
// Start parsing
++lineno;
} else {
"Error: did not find annotation in line {0}: [{1}]",
}
}
return ret;
}
}