package org.jmeld.vc.git;
import org.jmeld.util.Result;
import org.jmeld.vc.StatusResult;
import org.jmeld.vc.svn.SvnXmlCmd;
import org.jmeld.vc.util.VcCmd;
import java.io.*;
import java.util.Vector;
public class LogCmd extends VcCmd<LogData> {
private File file;
public LogCmd(File file) {
this.file = file;
initWorkingDirectory(file);
}
public Result execute() {
super.execute("git", "log", "--oneline", "--all");
return getResult();
}
protected void build(byte[] data) {
LogData logData = new LogData();
BufferedReader reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(data)));
try {
String text;
while ((text = reader.readLine()) != null) {
String revision = text.substring(0, 7);
logData.add(revision);
}
} catch (IOException ex) {
}
setResultData(logData);
}
public static void main(String[] args) {
LogCmd cmd;
File file = parseFile(args);
if (file == null) {
return;
}
cmd = new LogCmd(file);
if (cmd.execute().isTrue()) {
for (String revision : cmd.getResultData().getRevisions()) {
System.out.println(revision);
}
} else {
cmd.printError();
}
}
}
class LogData {
Vector<String> revisions;
public LogData() {
revisions = new Vector<String>();
}
public void add(String revision) {
revisions.add(revision);
}
public Vector<String> getRevisions() {
return revisions;
}
}