Where to populate Version Control entry

Evgeniy Ivanov powerfox at kde.ru
Mon Aug 25 22:43:56 UTC 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andreas Pakulat wrote:
> On 26.08.08 00:54:43, Evgeniy Ivanov wrote:
>> I looked on what we have now.
>> It doesn't work proper: if I have a hg repo and init git in any
>> subfolder, then for subfolder items add will work with git only (and not
>> with both hg/git).
> 
> This is not supposed to work. If you want to have special setups such as
> this you're supposed to use the Git/Hg/Svn/Cvs/.. submenus, we obviously
> need to provide the apropriate actions there too and enable/disable them
> based on support inside the given directory/file.

Agree with it. But I didn't notice, it was hg project, but in dir with
Git it used VS->add for Git (I didn't expect such behaviour). As you
suggested some time ago it would be nice to use information from .kdev4
about main plugin. Then create in VS menu only items for this plugin and
in <VCS-name here> to create plugins depending on the if there are some
extra repos.

IMHO any active (used) VCS plugin should provide full list of facilities
in one menu-item. I don't like having any [DC]VCS split into 2
menu-items. Only init facilities can be separated.


> 
>> Also reading comment I found the thing that
>> enabling/disabling will be very complicated:
> 
> Not _very_, just a bit more complicated than it is right now :)
> 
>> In DVCS add is always enabled.
> 
> Then your implementation of "add" is broken. Read the API dox of "add"
> again, it clearly talks about putting the given location under version
> control - not about adding them to the index file of git (in case of
> git). For that you need a new action in the Git submenu.

Like checkout. In DVCS add has a bit another meaning, but add existed
(there was no ICentralized that time) in IBasicVersionControl, so to not
implement dummy add and add_dvcs I used it. We can have add in
ICentralized and in IDistributed, but I don't think it's required (IMHO)

> 
>> Also DVCS requires
>> checkout/branch
> 
> That doesn't exist because so far no VCS system supported checking out a
> different branch - or creating a branch.

Maybe I misunderstood you. I remember you tested  branch manager. Git
supports branching. IDVCSexecutor supports any actions with
branch/checkout (I didn't move it to IDistributedVC, because it isn't
required to be there). Hg and bzr are in 5 minutes of supporting it too
(I didn't implement it yet, just because was doing another things).

> 
> I'm also not sure how we should handle that, for Svn and CVS you'll want
> a toolview with a list of repositories and branch as well as checkout
> will only work in there. And I'm tempted to handle DVCS the same way,
> i.e. list the projects that are dvcs-controlled in the "repositories"
> toolview and handle checkout/branching there.

I would suggest Branch Manager. IMHO it's ok: it can
rename/create/delete/checkout to branches.

> 
> The other option is to completely separate Dvcs and Cvcs.
> 

Branch Manager can be moved to VCS/widgets: it require only list of
branches and several API functions.


>> /Compare to Index/Compare to Commit/etc
> 
> Those two should be in the Git submenu.
> 
>> (not all implemented yet). But some stuff from VCS should be disabled.
> 
> Which?

Compare to Base, Compare to HEAD, Update. First and third can confuse
DVCS users, second can be used (to compare working copy with HEAD).


> 
>> I can't suggest anything but to populate VCS in kdevvcscommonplugin and
>> DVCS in dvcsplugin (for all 3 DVCS plugins).
> 
> Why?

Too many problems with populating menus for CVCS and DVCS in one place.



- --
Cheers, Evgeniy.
Key fingerprint: F316 B5A1 F6D2 054F CD18 B74A 9540 0ABB 1FE5 67A3

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org

iEYEARECAAYFAkizNawACgkQlUAKux/lZ6ObVACdFps7CL19E7S6E6wtMmGHhxMJ
hDoAn2AULw/G5UHtUgVJ+EVzr8x5Aclx
=nvss
-----END PGP SIGNATURE-----




More information about the KDevelop-devel mailing list