-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Platform: All, OS: All
It seems that Hudson uses the repository Revision to detect whether there were
any changes or not, but this is not right in case when the main-line sources are
only in some subdirectory, like
svn://server/project/trunk
(which is a very common practice, recommended by the Subversion team)
Let's say that we have two subdirs in the repository:
trunk (with main line of sources) and branches (with private sources,
not relevant to the main line).
Every time somebody commits (putbacks) changes into repository,
it's Revision is incremented. Now, if somebody commits to completely
irrelevant directory (such as branches), the revision of the
repository is incremented, and "svn info svn://server/project/trunk" shows that
Revision: was incremented
Last Changed Rev: was not incremented
So, if somebody uses Revision to detect changes, he/she would think that
there were changes in the product sources, while in fact,
there were no changes to the product, but only to private branches
that do not affect the product at all.
So, usage of repository's Revision may trigger the build while
there were no changes to the main product sources.
And, in fact, I see this behavior with my builds. Every time I change anything
in my private branch, Hudson builds the project from trunk, while nothing really
changed in trunk.
Hudson should look an the Last Changed Rev for particular directory, specified
in subversion URL, not for the Revision of entire workspace.