-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Platform: All, OS: All
In at least two different cases Hudson incorrectly prints out "No changes
determined yet" instead of "No changes".
1. In jobs with no CVS/SVN configured, Hudson always prints "No changes
determined yet".
2. In case when job is configured with SVN, and there were no changes in
particular build, Hudson will print "No changes determined yet". Mabybe, the
same issue is present with CVS, I didn't check.
First case is rather easy to fix:
Index: src/main/java/hudson/model/Build.java
===================================================================
RCS file: /cvs/hudson/hudson/main/core/src/main/java/hudson/model/Build.java,v
retrieving revision 1.4
diff -u -r1.4 Build.java
— src/main/java/hudson/model/Build.java 20 Nov 2006 16:17:04 -0000 1.4
+++ src/main/java/hudson/model/Build.java 22 Nov 2006 10:51:16 -0000
@@ -9,6 +9,7 @@
import hudson.scm.CVSChangeLogParser;
import hudson.scm.ChangeLogParser;
import hudson.scm.ChangeLogSet;
+import hudson.scm.NullChangeLogParser;
import hudson.scm.SCM;
import hudson.scm.ChangeLogSet.Entry;
import hudson.tasks.BuildStep;
@@ -110,6 +111,9 @@
- Returns true if the changelog is already computed.
*/
public boolean hasChangeSetComputed()Unknown macro: {+ if (scm instanceof NullChangeLogParser) { + return true; + } File changelogFile = new File(getRootDir(), "changelog.xml"); return changelogFile.exists(); }
Let me know if that's OK and I'll commit the change.
The second case is harder to fix. Some changes in SubversionSCM are needed - to
create changelog.xml always, even if there were no changes detected.
But I don't like this - the whole algorithm of calculation whether there were
changes or not depends on not-specified-side-effect that SCMs produce
changelog.xml file. Implementors of other SCM modules might not be aware of this
dependency and would introduce the same problem.
Maybe, more clean approach with some notification mechanizm is needed, so when
SCM module is done with checking out the changes, it could somehow notify the
rest of the system, and then there will be no need to guess whether SCM is done
or not by using side-effects.