From de148b371160423c943a719219204e09ae5718d3 Mon Sep 17 00:00:00 2001 From: mc1arke Date: Mon, 4 Jun 2012 20:35:23 +0100 Subject: [PATCH] [FIXED JENKINS-13624] Allow checkout of submodules --- src/main/java/hudson/scm/CVSSCM.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/hudson/scm/CVSSCM.java b/src/main/java/hudson/scm/CVSSCM.java index 80363f1..f63dfb9 100644 --- a/src/main/java/hudson/scm/CVSSCM.java +++ b/src/main/java/hudson/scm/CVSSCM.java @@ -708,9 +708,14 @@ public boolean checkout(final AbstractBuild build, final Launcher launcher for (CvsModule cvsModule : item.getModules()) { - final FilePath targetWorkspace = flatten ? workspace.getParent() : workspace; + boolean localSubModule = cvsModule.getCheckoutName().contains("/"); + int lastSlash = cvsModule.getCheckoutName().lastIndexOf("/"); - final String moduleName= flatten ? workspace.getName() : cvsModule.getCheckoutName(); + final FilePath targetWorkspace = flatten ? workspace.getParent() : + localSubModule ? workspace.child(cvsModule.getCheckoutName().substring(0, lastSlash)) : workspace; + + final String moduleName = flatten ? workspace.getName() : + localSubModule ? cvsModule.getCheckoutName().substring(lastSlash + 1) : cvsModule.getCheckoutName(); final FilePath module = targetWorkspace.child(moduleName);