VCS Interfaces, round 3

Andreas Pakulat apaku at gmx.de
Wed May 9 10:37:23 UTC 2007


On 04.05.07 14:50:50, Matt Rogers wrote:
> On May 4, 2007, at 10:33 AM, Matthew Woehlke wrote:
> > Matt Rogers wrote:
> >> I missed a few things, so I have some questions.
> >>
> >> Why do we have log, and showLog?
> >
> > log() is for use in scripts, it allows you to do things like write a
> > revision graph tool, ask for information about a file three versions
> > ago, etc. With just showLog() this cannot be done.
> 
> scripts for what? command-line scripts? do you have a use case? this  
> seems like something that is just there for the sake of being there,  
> especially when we can add it later.

No we can't easily add it later on. This is about stuff in an extension
interface and adding things to an extension interface means creating a
new version of that interface with the new stuff. Then plugins need to
adapt and implement both interfaces and declare that they now implement
both interface versions.

Especially for things in the basic interface this is a major headache
for users, then they'd need to do something like

iface = plugin->extension<IBasicV2>();
if( !iface )
{
  do some workaround using IBasicV1
}else
  use new method in IBasicV2

But only if they use a new method in V2, else they don't need to change
anything... This would be a bit messy so we should try to have
interfaces that don't need many changes after the initial release.

Andreas

-- 
Don't worry so loud, your roommate can't think.




More information about the KDevelop-devel mailing list