Add setter for ProgressMonitor to StatusCommand
This is useful if Git.status() is a long running command. Change-Id: I6bdbf347a688043d549c1f091fb4a264a6c7024e Signed-off-by: Christian Trutz <christian.trutz@gmail.com> Signed-off-by: Robin Stocker <robin@nibor.org>
This commit is contained in:
parent
a76a4acf87
commit
f677b07b98
|
@ -51,6 +51,7 @@
|
||||||
import org.eclipse.jgit.errors.NoWorkTreeException;
|
import org.eclipse.jgit.errors.NoWorkTreeException;
|
||||||
import org.eclipse.jgit.lib.Constants;
|
import org.eclipse.jgit.lib.Constants;
|
||||||
import org.eclipse.jgit.lib.IndexDiff;
|
import org.eclipse.jgit.lib.IndexDiff;
|
||||||
|
import org.eclipse.jgit.lib.ProgressMonitor;
|
||||||
import org.eclipse.jgit.lib.Repository;
|
import org.eclipse.jgit.lib.Repository;
|
||||||
import org.eclipse.jgit.treewalk.FileTreeIterator;
|
import org.eclipse.jgit.treewalk.FileTreeIterator;
|
||||||
import org.eclipse.jgit.treewalk.WorkingTreeIterator;
|
import org.eclipse.jgit.treewalk.WorkingTreeIterator;
|
||||||
|
@ -69,6 +70,7 @@
|
||||||
public class StatusCommand extends GitCommand<Status> {
|
public class StatusCommand extends GitCommand<Status> {
|
||||||
private WorkingTreeIterator workingTreeIt;
|
private WorkingTreeIterator workingTreeIt;
|
||||||
private List<String> paths = null;
|
private List<String> paths = null;
|
||||||
|
private ProgressMonitor progressMonitor = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param repo
|
* @param repo
|
||||||
|
@ -124,7 +126,11 @@ public Status call() throws GitAPIException, NoWorkTreeException {
|
||||||
IndexDiff diff = new IndexDiff(repo, Constants.HEAD, workingTreeIt);
|
IndexDiff diff = new IndexDiff(repo, Constants.HEAD, workingTreeIt);
|
||||||
if (paths != null)
|
if (paths != null)
|
||||||
diff.setFilter(PathFilterGroup.createFromStrings(paths));
|
diff.setFilter(PathFilterGroup.createFromStrings(paths));
|
||||||
diff.diff();
|
if (progressMonitor == null)
|
||||||
|
diff.diff();
|
||||||
|
else
|
||||||
|
diff.diff(progressMonitor, ProgressMonitor.UNKNOWN,
|
||||||
|
ProgressMonitor.UNKNOWN, ""); //$NON-NLS-1$
|
||||||
return new Status(diff);
|
return new Status(diff);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new JGitInternalException(e.getMessage(), e);
|
throw new JGitInternalException(e.getMessage(), e);
|
||||||
|
@ -143,4 +149,17 @@ public StatusCommand setWorkingTreeIt(WorkingTreeIterator workingTreeIt) {
|
||||||
this.workingTreeIt = workingTreeIt;
|
this.workingTreeIt = workingTreeIt;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To set the {@link ProgressMonitor} which contains callback methods to
|
||||||
|
* inform you about the progress of this command.
|
||||||
|
*
|
||||||
|
* @param progressMonitor
|
||||||
|
* @return {@code this}
|
||||||
|
* @since 3.1
|
||||||
|
*/
|
||||||
|
public StatusCommand setProgressMonitor(ProgressMonitor progressMonitor) {
|
||||||
|
this.progressMonitor = progressMonitor;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue