Skip to content

Commit b5a8007

Browse files
committed
Log number of repositories being fetched from during checkout.
1 parent 56b67db commit b5a8007

1 file changed

Lines changed: 50 additions & 25 deletions

File tree

src/main/java/hudson/plugins/git/GitSCM.java

Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,59 @@
11
package hudson.plugins.git;
22

3-
import hudson.*;
3+
import static hudson.Util.fixEmptyAndTrim;
4+
import hudson.EnvVars;
5+
import hudson.Extension;
6+
import hudson.FilePath;
47
import hudson.FilePath.FileCallable;
5-
import hudson.matrix.MatrixBuild;
8+
import hudson.Launcher;
9+
import hudson.Util;
610
import hudson.matrix.MatrixRun;
7-
8-
import hudson.model.*;
9-
10-
import static hudson.Util.fixEmptyAndTrim;
11+
import hudson.matrix.MatrixBuild;
12+
import hudson.model.Action;
13+
import hudson.model.BuildListener;
1114
import hudson.model.Descriptor.FormException;
12-
15+
import hudson.model.Items;
16+
import hudson.model.Result;
17+
import hudson.model.TaskListener;
18+
import hudson.model.AbstractBuild;
19+
import hudson.model.AbstractProject;
20+
import hudson.model.Hudson;
21+
import hudson.model.Label;
22+
import hudson.model.Node;
23+
import hudson.model.ParametersAction;
24+
import hudson.model.Run;
1325
import hudson.plugins.git.browser.GitRepositoryBrowser;
1426
import hudson.plugins.git.browser.GitWeb;
1527
import hudson.plugins.git.opt.PreBuildMergeOptions;
16-
17-
import hudson.plugins.git.util.*;
1828
import hudson.plugins.git.util.Build;
19-
29+
import hudson.plugins.git.util.BuildChooser;
30+
import hudson.plugins.git.util.BuildChooserDescriptor;
31+
import hudson.plugins.git.util.BuildData;
32+
import hudson.plugins.git.util.DefaultBuildChooser;
33+
import hudson.plugins.git.util.GitUtils;
2034
import hudson.remoting.VirtualChannel;
2135
import hudson.scm.ChangeLogParser;
2236
import hudson.scm.PollingResult;
23-
import hudson.scm.SCM;
2437
import hudson.scm.SCMDescriptor;
2538
import hudson.scm.SCMRevisionState;
39+
import hudson.scm.SCM;
2640
import hudson.util.FormValidation;
2741

2842
import java.io.ByteArrayOutputStream;
2943
import java.io.File;
3044
import java.io.FileOutputStream;
3145
import java.io.IOException;
46+
import java.io.PrintStream;
3247
import java.io.Serializable;
3348
import java.net.MalformedURLException;
34-
import java.util.*;
49+
import java.text.MessageFormat;
50+
import java.util.ArrayList;
51+
import java.util.Arrays;
52+
import java.util.Collection;
53+
import java.util.Collections;
54+
import java.util.HashSet;
55+
import java.util.List;
56+
import java.util.Set;
3557
import java.util.logging.Level;
3658
import java.util.logging.Logger;
3759
import java.util.regex.Pattern;
@@ -41,16 +63,13 @@
4163
import net.sf.json.JSONObject;
4264

4365
import org.eclipse.jgit.lib.Config;
66+
import org.eclipse.jgit.lib.ObjectId;
67+
import org.eclipse.jgit.transport.RefSpec;
68+
import org.eclipse.jgit.transport.RemoteConfig;
4469
import org.kohsuke.stapler.DataBoundConstructor;
4570
import org.kohsuke.stapler.StaplerRequest;
4671
import org.kohsuke.stapler.StaplerResponse;
4772
import org.kohsuke.stapler.export.Exported;
48-
import org.eclipse.jgit.lib.ObjectId;
49-
import org.eclipse.jgit.lib.StoredConfig;
50-
import org.eclipse.jgit.storage.file.FileBasedConfig;
51-
import org.eclipse.jgit.transport.RefSpec;
52-
import org.eclipse.jgit.transport.RemoteConfig;
53-
import org.eclipse.jgit.util.FS;
5473

5574
/**
5675
* Git SCM.
@@ -907,11 +926,12 @@ public boolean checkout(final AbstractBuild build, Launcher launcher,
907926
public Revision invoke(File localWorkspace, VirtualChannel channel)
908927
throws IOException {
909928
FilePath ws = new FilePath(localWorkspace);
910-
listener.getLogger().println("Checkout:" + ws.getName() + " / " + ws.getRemote() + " - " + ws.getChannel());
929+
final PrintStream log = listener.getLogger();
930+
log.println("Checkout:" + ws.getName() + " / " + ws.getRemote() + " - " + ws.getChannel());
911931
IGitAPI git = new GitAPI(gitExe, ws, listener, environment);
912932

913933
if (wipeOutWorkspace) {
914-
listener.getLogger().println("Wiping out workspace first.");
934+
log.println("Wiping out workspace first.");
915935
try {
916936
ws.deleteContents();
917937
} catch (InterruptedException e) {
@@ -924,13 +944,18 @@ public Revision invoke(File localWorkspace, VirtualChannel channel)
924944

925945
// Do we want to prune first?
926946
if (pruneBranches) {
927-
listener.getLogger().println("Pruning obsolete local branches");
947+
log.println("Pruning obsolete local branches");
928948
for (RemoteConfig remoteRepository : paramRepos) {
929949
git.prune(remoteRepository);
930950
}
931951
}
932952

933-
listener.getLogger().println("Fetching changes from the remote Git repository");
953+
if (paramRepos.size() == 1)
954+
log.println("Fetching changes from 1 remote Git repository");
955+
else
956+
log.println(MessageFormat
957+
.format("Fetching changes from {0} remote Git repositories",
958+
paramRepos));
934959

935960
boolean fetched = false;
936961

@@ -947,7 +972,7 @@ public Revision invoke(File localWorkspace, VirtualChannel channel)
947972

948973
} else {
949974

950-
listener.getLogger().println("Cloning the remote Git repository");
975+
log.println("Cloning the remote Git repository");
951976

952977
// Go through the repositories, trying to clone from one
953978
//
@@ -963,7 +988,7 @@ public Revision invoke(File localWorkspace, VirtualChannel channel)
963988
listener.error("Cause: %s", ex.getCause().getMessage());
964989
}
965990
// Failed. Try the next one
966-
listener.getLogger().println("Trying next repository");
991+
log.println("Trying next repository");
967992
}
968993
}
969994

@@ -995,7 +1020,7 @@ public Revision invoke(File localWorkspace, VirtualChannel channel)
9951020
}
9961021

9971022
if (getClean()) {
998-
listener.getLogger().println("Cleaning workspace");
1023+
log.println("Cleaning workspace");
9991024
git.clean();
10001025

10011026
if (git.hasGitModules()) {

0 commit comments

Comments
 (0)