SubmoduleUpdateCommand: Add fetch callback

When the submodule already exists, it is fetched instead of
cloned.

Use the fetch callback instead of clone callback in this case.

Change-Id: I170c21ab92b4117f25fdf940fe6807f214b04d39
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
This commit is contained in:
David Pursehouse 2017-09-15 12:44:10 +09:00 committed by Matthias Sohn
parent 06835f3e4f
commit e32aed6d75
1 changed files with 18 additions and 4 deletions

View File

@ -91,6 +91,8 @@ public class SubmoduleUpdateCommand extends
private CloneCommand.Callback callback;
private FetchCommand.Callback fetchCallback;
private boolean fetch = false;
/**
@ -191,10 +193,8 @@ public Collection<String> call() throws InvalidConfigurationException,
clone.setProgressMonitor(monitor);
submoduleRepo = clone.call().getRepository();
} else if (this.fetch) {
if (callback != null) {
// FIXME: Do we need a new callback to tell them we're
// fetching?
callback.cloningSubmodule(generator.getPath());
if (fetchCallback != null) {
fetchCallback.fetchingSubmodule(generator.getPath());
}
FetchCommand fetchCommand = Git.wrap(submoduleRepo).fetch();
if (monitor != null) {
@ -274,4 +274,18 @@ public SubmoduleUpdateCommand setCallback(CloneCommand.Callback callback) {
this.callback = callback;
return this;
}
/**
* Set status callback for submodule fetch operation.
*
* @param callback
* the callback
* @return {@code this}
* @since 4.9
*/
public SubmoduleUpdateCommand setFetchCallback(
FetchCommand.Callback callback) {
this.fetchCallback = callback;
return this;
}
}