[KDev4] vcs integration - KUrl of a file is not enough to know the file's project!

Kuba Ober kuba at mareimbrium.org
Tue Apr 10 10:09:45 UTC 2007


On Thursday 05 April 2007, Branan Riley wrote:
> Let me make sure I've got this:
> * Aegis requires all changes to be made in a change-set of sorts

Yes, there's no other way. The only way for you to access files that are not 
part of your change is to mount the repository via nfs/samba/openafs. In any 
case, aegis clients access its database via the filesystem and use ordinary 
unix access control mechanisms and file locking, so the model is a bit 
different from say cvs or svn.

Distributed development is supported by every developer having their own local 
repo, and emailing changesets around (this can be automated on any repo, 
including a one designated as "central").

This model is necessary as object files (potentially for builds with multiple 
compilers, multiple compile options and for multiple architectures) have to 
be visible as well. If you start a new change, an aegis -build is meant to be 
a no-op -- you have an executable to play with immediately.

> * You can't make changes in a base area

Yes, it's read-only.

> Listing which files are part of a project is part of the project
> plugin, right? So why not just let the aegis plugin do something like
> this for that list:
>
> [root]
>
> |--Trunk
> |
> |  |--File 1
> |
> |  `--File 2
>
> `--Change Set
>
>    |--File 1
>
>    `--File 2
>
> Another thing with this is that you could have a little popup upon
> opening a file in Trunk asking if you want to open it read-only or
> create a new change set. You can of course also do it all from the
> contex menu (which I hope is accessible to plugins?)

That'd be the minimal functionality. It'd be even better if one could 
intercept the Save action of the editor and offer to take the file into the 
change first, and essentially do a Save as. 

0. The change is in ~/fooproject.1.2.C010
1. Open /usr/com/aegis/fooproject/branch.1/branch.2/baseline/myfile.c (it's 
readonly)
2. Choose "Save"
3. Pop-up appears, choose "add file to the change"
4. Automagically, two things happen:
   I.  aegis -copy myfile.c
   II. Save-as ~/fooproject.1.2.C010/myfile.c

Cheers, Kuba




More information about the KDevelop-devel mailing list