Bug in CVSService Integration?

Christian Loose christian.loose at hamburg.de
Sun Apr 18 23:05:06 UTC 2004


Am Sonntag, 18. April 2004 14:06 schrieb Sascha Cunz:
> Hi,
> i just came accross the following scenario:
>
> i have two boxes both with a checkout of a file from a cvs server. I
> updated both to the most recent version (Lets say "file:1.10").
> Then i made a change on box A and commited that change, the file being now
> on version "file:1.11" in HEAD and on box A. The version on box B is still
> "file:1.10" and it's not in sync with HEAD but locally unmodified.
>
> I opened the file in editor on box B. Context menu now offers me:
> CVSService -> Difference between revisions.
> After selecting this, a dialog pops up, asking me what i want to diff.
> Here i could select:
>   - "local copy against HEAD"
>   - "local copy against any revision"
>
> Doing "local copy against HEAD" tells me there are no differences. Doing
> "local copy against any revision" and entering "HEAD" as the revision gives
> me correct differences.
>
> So i assume, "local copy against HEAD" is in reallity "local copy against
> BASE" (it works with local changes and the local revision being the same as
> HEAD on the server)
>
> As the Cervisia application offers usually both variants ("against BASE"
> and "against HEAD"), i'd be more convient to have both in CVSService plugin
> too.
>
> Cheers Sascha

Hi Sascha,

I took a short glimpse at the cvsservice code. The bug seems to be in 
vcs/cvsservice/diffdialog.cpp. The method DiffDialog::revA() returns 
QString::null when the user selected "local copy against HEAD" but specifying 
no revision means diff against BASE. 

Please compare this against the method CervisiaPart::slotDiffHead() in 
kdesdk/cervisia/cervisiapart.cpp.

I agree that the more often used diff against BASE seems to be missing.

Greetings

-- 
Christian Loose
Cervisia maintainer - http://www.kde.org/apps/cervisia




More information about the KDevelop-devel mailing list