Skip to content

Commit

Permalink
Merge pull request #51 from yoichi/master
Browse files Browse the repository at this point in the history
[FIXED JENKINS-16533] Respect external revision
  • Loading branch information
kutzi committed Sep 15, 2013
2 parents 74b0f9e + 8b75c94 commit 5ea6229
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 1 deletion.
Expand Up @@ -72,7 +72,12 @@ public SubversionUpdateEventHandler(PrintStream out, List<External> externals, F
public SVNRevision[] handleExternal(File externalPath, SVNURL externalURL, SVNRevision externalRevision,
SVNRevision externalPegRevision, String externalsDefinition,
SVNRevision externalsWorkingRevision) {
long revisionNumber = SVNRevision.isValidRevisionNumber(externalPegRevision.getNumber()) ? externalPegRevision.getNumber() : -1;
long revisionNumber = -1;
if (SVNRevision.isValidRevisionNumber(externalRevision.getNumber())) {
revisionNumber = externalRevision.getNumber();
} else if (SVNRevision.isValidRevisionNumber(externalPegRevision.getNumber())) {
revisionNumber = externalPegRevision.getNumber();
}
SVNExternalDetails details = new SVNExternalDetails(externalURL, revisionNumber);

externalDetails.put(externalPath, details);
Expand Down
17 changes: 17 additions & 0 deletions src/test/java/hudson/scm/SubversionSCMTest.java
Expand Up @@ -1579,4 +1579,21 @@ public void testChangingDepthInJob() throws Exception {
}
}

@Bug(16533)
public void testPollingRespectExternalsWithRevision() throws Exception {
// trunk has svn:externals="-r 1 ^/vendor vendor" (pinned)
// latest commit on vendor is r3 (> r1)
File repo = new CopyExisting(getClass().getResource("JENKINS-16533.zip")).allocate();
SubversionSCM scm = new SubversionSCM("file://" + repo.toURI().toURL().getPath() + "trunk");

// pinned externals should be recorded with ::p in revisions.txt
FreeStyleProject p = createFreeStyleProject();
p.setScm(scm);
p.setAssignedLabel(createSlave().getSelfLabel());
assertBuildStatusSuccess(p.scheduleBuild2(0).get());

// should not find any change (pinned externals should be skipped on poll)
// fail if it checks the revision of external URL larger than the pinned revision
assertFalse(p.poll(StreamTaskListener.fromStdout()).hasChanges());
}
}
Binary file added src/test/resources/hudson/scm/JENKINS-16533.zip
Binary file not shown.

0 comments on commit 5ea6229

Please sign in to comment.