diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index 522cc47829a24ffd1087123b9347f2458dde51da..256c59b7d732f8a3573c1fcc5d71799c59053121 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -667,6 +667,10 @@ public abstract class AbstractBuild

,R extends Abs } catch (Exception e) { throw new IOException2("Failed to parse changelog",e); } + + // Get a chance to do something after checkout and changelog is done + scm.postCheckout( build, launcher, build.getWorkspace(), listener ); + return; } } catch (AbortException e) { diff --git a/core/src/main/java/hudson/scm/SCM.java b/core/src/main/java/hudson/scm/SCM.java index f6890b6f7536ee606c3e42df29f037d30e7fdc32..2b243d3ca5d084939f3bc59b3ab15953f32eaa64 100644 --- a/core/src/main/java/hudson/scm/SCM.java +++ b/core/src/main/java/hudson/scm/SCM.java @@ -420,6 +420,13 @@ public abstract class SCM implements Describable, ExtensionPoint { */ public abstract boolean checkout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener, File changelogFile) throws IOException, InterruptedException; + /** + * Get a chance to do operations after the workspace i checked out and the changelog is written. + */ + public void postCheckout(AbstractBuild build, Launcher launcher, FilePath workspace, BuildListener listener) throws IOException, InterruptedException { + /* Default implementation is noop */ + } + /** * Adds environmental variables for the builds to the given map. *