package org.jmeld.vc.svn;
import org.jmeld.vc.*;
import java.io.*;
import java.util.*;
public class SubversionVersionControl implements VersionControlIF {
private Boolean installed;
private String reference;
public SubversionVersionControl() {
setReference("HEAD");
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public String getName()
{
return "subversion";
}
public boolean isInstalled()
{
InstalledCmd cmd;
if (installed == null)
{
cmd = new InstalledCmd();
cmd.execute();
installed = cmd.getResult().isTrue();
}
return installed.booleanValue();
}
public boolean isEnabled(File file)
{
ActiveCmd cmd;
cmd = new ActiveCmd(file);
cmd.execute();
return cmd.getResult().isTrue();
/*
StatusCmd cmd;
StatusResult statusResult;
// Don't check for existence of '.svn' because an installations
// can change that default.
// Don't use the info command because it will fail for unversioned
// files that ARE in a versioned directory.
cmd = new StatusCmd(file, false);
if (!cmd.execute().isTrue())
{
return false;
}
// Subversion has a bug until 1.5.1.
// It will return an invalid xmldocument on a file that is not
// in a working copy.
statusResult = cmd.getStatusResult();
if (statusResult == null)
{
return false;
}
return statusResult.getEntryList().size() >= 1;
*/
}
public BlameIF executeBlame(File file)
{
BlameCmd cmd;
cmd = new BlameCmd(file);
cmd.execute();
return cmd.getResultData();
}
public DiffIF executeDiff(File file, boolean recursive)
{
DiffCmd cmd;
cmd = new DiffCmd(file, recursive);
cmd.execute();
return cmd.getResultData();
}
public StatusResult executeStatus(File file)
{
StatusCmd cmd;
cmd = new StatusCmd(file, true);
cmd.execute();
return cmd.getStatusResult();
}
public BaseFile getBaseFile(File file)
{
CatCmd cmd;
cmd = new CatCmd(file);
cmd.execute();
return cmd.getResultData();
}
@Override
public Vector<String> getRevisions(File file) {
Vector<String> revisions = new Vector<>();
revisions.add("HEAD");
return revisions;
}
public String toString()
{
return getName();
}
}