REMINDER: Final review of VCS interfaces

Andreas Pakulat apaku at gmx.de
Thu May 24 17:06:38 UTC 2007


On 24.05.07 18:43:16, Robert Gruber wrote:
> I just took a look at ibasicversioncontrol.h, and as far 
> as CVS is concerned, it looks pretty good.
> Everything that comes to my mind is covered by 
> the interface (but annotate is missing). 

We have that covered now.

> But sill some questions are left:
> 
> *) CVS offers some more options that are not common and will 
>    therefore not be part of the interface (i think!?)
>    E.g. when adding binary file, an additional option needs to 
>    be passed to "cvs add". That's why KDev3 offers two separat 
>    menu entries for adding files.
>    How will such "extensions" be handled? Will CvsPlugin need to 
>    implement a second interface, let's say ICvs, that provides 
>    an overloaded add() method?

That depends, a context menu can be provided without such an ICvs. But
of course then scripts can't add files and flag it as binary. If you
want to provide somthing like addBinary create an ICvs extension
interface and install the header together with the plugin.

As far as the standard add() method is concerned CVS plugin should find
out itself and if needed add the binary option automatically (there's a
function in lib/shell that tests wether a given file is text or not).


> *) Why is CvsJob not derived from KJob?

Because its a plain interface at the moment without any implementation
:) 

In fact our plan was to have it subclass from KJob, but I didn't yet
look if thats feasible or if it should rather be just an interface
instead.

> *) I'm not really sure what's the difference between diff() 
>    and showDiff() and the other show*() methods. 

diff() doesn't popup a dialog while showDiff() does.

>    Will the show*() methods popup a dialog showing the diff,
>    the log and so on? If so, why do they return VcsJob?

Hmm, thats somewhat of an oversight (copy/paste error), actually the
showFoo methods should always be asynchronous and just have a void
return type.

BTW: I was planning to port the CVS plugin to the new interfaces in the
week from June 5th, unless you want to do it yourself. Matt asked wether
any plugin implements the interface and why none did yet, so I said I'd
port cvs (svn seems to be more complicated, even though I'm not that
familiar with cvs anymore) soon. Reason is just that only an actual
implementation will show furter flaws in the interfaces...

Andreas

-- 
You've been leading a dog's life.  Stay off the furniture.




More information about the KDevelop-devel mailing list