VCS interface

Evgeniy Ivanov powerfox at
Fri Jul 11 17:35:20 UTC 2008

Hash: SHA1

Andreas Pakulat wrote:
> On 11.07.08 16:45:12, Aleix wrote:
>> Hi list,
>> I am looking at the KDevelop4 VCS interface and I'm not really seeing how
>> can this be used.
>> There is a quite rich interface but it is not being used because the only
>> way I see it is being called is from the Context Menus inside the plugin
>> itself. I would understand this inteface if the menus were actually shared
>> between all the plugins but they're being replicated around... maybe I'm
>> missing something.
>> Shouldn't the basicversioncontrol class create the menu and enqueue the job
>> itself? that way we would have a ready interface for all the possible VCS
>> without having to define it, otherwise having such an interface is a jail
>> for the plugin developer...
> Yes the menu-creation and enqueuing of the job should move to a more
> core component. But not IBasicVersionControl. That class is a pure
> interface and should stay that way. I'm not sure how much can be moved
> though, a plugin may need to provide its own implementation of
> VcsLocation (or at least fill it in itself)...
> I'm not sure what exactly you mean with the last sentence above, however
> the vcs interfaces are mostly there to be called from other plugins (yes
> there's no example right now, but there will be sooner or later).
> Andreas

That is the thing I wanted to discuss these days, but wasn't able.
I would like to do something like this with derived of IBasicVC:
1. remove svnjob and cvsjob and use DVCSjob->DVCSjobBase.
2. Add an ivcsexecutor, likeidvcsexecutor.h, rename all <vcs>proxy to
3. As you can see DVCSplugin implements all things (the most part) from
IBasicVersion (inluding menus, basic functionality). So the main deal is
to implement (move IBasicVC related things) to VCSplugin. The code of
<vcs>plugin would benefit much.

If nobody against I will do it. It shouldn't take much time.

- --
Best Regards,

Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with SUSE -


More information about the KDevelop-devel mailing list