package ilarkesto.scm.git; import ilarkesto.scm.AScmProject; import java.io.File; public class GitProject extends AScmProject { public GitProject(Git tool, File dir) { super(tool, dir); } @Override public boolean isDirty() { String output = exec("status"); return !output.contains("nothing to commit (working directory clean)"); } @Override public String getLogAndDiffSince(String version) { throw new RuntimeException("Not implemented yet."); } @Override public String getVersion() { throw new RuntimeException("Not implemented yet."); } public boolean pull(String remote) { String output = remote == null ? exec("pull") : exec("pull", remote); output = output.trim(); return !output.equals("Already up-to-date."); } @Override public boolean pullFromOrigin() { return pull(null); } private synchronized String exec(String... parameters) { return getTool().exec(getDir(), parameters); } @Override public Git getTool() { return (Git) super.getTool(); } }