[ http://jira.codehaus.org/browse/CONTINUUM-415?page=all ]

Emmanuel Venisse updated CONTINUUM-415:
---------------------------------------

    Fix Version: 1.1

> cvs update log shows all updates, not just relevant updates
> -----------------------------------------------------------
>
>          Key: CONTINUUM-415
>          URL: http://jira.codehaus.org/browse/CONTINUUM-415
>      Project: Continuum
>         Type: Bug

>   Components: Core system
>     Versions: 1.0
>  Environment: WinXP
> Client: Concurrent Versions System (CVSNT) 2.5.02 (Servalan) Build 2115 
> (client/server)
> Server: Concurrent Versions System (CVSNT) 2.0.34 (client/server)
>     Reporter: Brian Ewins
>      Fix For: 1.1

>
>
> To reproduce, perform a build on a project which uses CVS. Take a look at the 
> results for the build What I see is the list of files changed in the most 
> recent update, followed by the author and comment for /every/ commit on those 
> files /ever/.  What I expected to see was (at best) only changes since the 
> last build, or (at least) only recent changes, say in the last day or two.
> I've traced this one down a bit, the cause is quite convoluted; the code 
> producing the log is making an incorrect assumption about the ScmResults 
> created on updates. Here's the call sequence that's messing up as far as I 
> can tell (from browsing svn and correlating with the log messages I see):
> DefaultContinuum.buildProject(various) 
> -..after a couple of steps..-> DefaultContinuumScm.updateProject(project)
> -> [ScmResult] result = convertScmResult(
>                     scmManager.getProviderByRepository( repository ).update( 
> repository, fileSet, tag ) )
> -> [CvsScmProvider].update(repository, fileSet, tag)
> -> [AbstractUpdateCommand].execute( repository.getProviderRepository(), 
> fileSet, parameters )
> -> (ChangeLogScmResult) [AbstractChangeLogCommand].executeCommand( repository,
>                                                                               
>                         fileSet,
>                                                                               
>                         parameters ); 
> -> [CvsChangeLogCommand].executeCommand(repository, fileSet, null, null, 0, 
> branch)
> This then calls cvs log with no date limiting parameters, so the ScmResult 
> for the update contains the full log, although it is trimmed to just the 
> files that changed.
> then later on, when asked to produce the build log:
> DefaultContinuum.getChangesSinceLastSuccess(projectId, buildId)
> -> changes.addAll( buildResult.getScmResult().getChanges() );
> This adds all the changes recorded in that build result, which the previous 
> trace shows are actually all changes, ever. This set of changes isn't then 
> filtered by date.
> From the looks of 'getChangesSinceLastSuccess' its supposed to provide a list 
> of all changes from build 'buildId' up to the current one. The assumption in 
> that method appears to be that each buildResult contains only appropriate 
> changes. However, since it contains /all/ changes, I'd expect that the 
> situation is much worse: multiple changes to a file since the last build will 
> mean we get multiple copies of /all/ changes to that file dumped into the log.
> There's some kind of logical disconnect here. I think what's missing is that 
> the call to 'scmManager.getProviderByRepository( repository ).update( 
> repository, fileSet, tag ) ' should actually be passing in the timestamp of 
> the previous build, so that we can retrieve just changes since that build: 
> that way the assumption in 'getChangesSinceLastSuccess' is correct. - that 
> the changes from multiple builds can just be appended together. 
> If I've diagnosed this wrong, then it means that whatever's meant to filter 
> down the changes to just those since the last build isn't working. I couldn't 
> find any code that was actually attempting to do that, though.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to