[Issue 176] New - Hudson incorrectly produces "No changes determined yet"

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[Issue 176] New - Hudson incorrectly produces "No changes determined yet"

vsizikov
https://hudson.dev.java.net/issues/show_bug.cgi?id=176
                 Issue #|176
                 Summary|Hudson incorrectly produces "No changes determined yet
                        |"
               Component|hudson
                 Version|current
                Platform|All
              OS/Version|All
                     URL|
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|www
             Assigned to|issues@hudson
             Reported by|vsizikov






------- Additional comments from [hidden email] Wed Nov 22 10:58:23 +0000 2006 -------
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() {
+        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.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]