[RFC] Workingstyle of different VCS systems

Matthew Woehlke mw_triad at users.sourceforge.net
Thu Apr 5 20:01:58 UTC 2007


(Kuba Ober, we would like your thoughts too!)

Andreas Pakulat wrote:
> On 05.04.07 13:04:43, Matthew Woehlke wrote:
>> Hmm... ok, I guess it's similar. I don't know how aegis works, so... :-)
> 
> See the archive of last month, Kuba Ober tried to explain it to me.

I know, I've been reading, but I didn't understand it either. :-)

>>>>>>> Sounds a bit like aegis which Kuba uses... So if you have a number of
>>>>>>> files in your changelist you can't just edit them? You have to do this
>>>>>>> via a p4 command?
>>>>>> 
>>>>>> Um, I'm not sure I follow you. You "can't"* edit a file unless you open 
>>>>>> it for edit. Once it is open, you can move it around your open 
>>>>>> changelists. An open changelist basically just serves to keep track of 
>>>>>> different things you are working on at once, mainly you can pre-enter 
>>>>>> the description and you commit single changelists, so this makes it easy 
>>>>>> to commit some files but not others.
>>>>>> [snip asterisk]
>>>>>> The main practical impact here is that before you can hack on a file you 
>>>>>> have to "open" it (vcs'd files are usually -w until you open them). 
>>>>>> Changelist management I think is unique enough that it can be left to 
>>>>>> the front end to worry about.
>>>> 
>>>> Yes, thats exactly what I was thinking, i.e. you can't just click on a
>>>> file in the project which opens it and then edit it. You first have to
>>>> execute some vcs-action to do that.
>>> 
>>> As aegis needs something similar I think we should try to find a way to
>>> execute some vcs-action before opening a file in the editor...
>> No, this is totally unnecessary/wrong with perforce. Most opening files 
>> is "look, don't touch"; edit should be a separate action. Alternatively, 
>> if you could intercept trying to save a file, and if it is -w, /then/ 
>> pop up a dialog asking if you want to open it for edit, that would rock. 
>> But files should not be opened for edit when you open them.
> 
> Hmm, I'm not sure we can intercept it (I haven't looked at the
> kate-integration).

Offhand I would guess you can't, but IMO that's OK. I'd say let's stick 
with a manual 'edit' action, at least for perforce (maybe aegis wants to 
do this differently). Anyway I think we are again drifting into back end 
implementation and away from interface design. :-) I guess maybe we 
should keep in mind that a VCS plugin may want to hook certain events 
(maybe Kuba Ober could comment on this?).

>> Well, it's just MHO but tagging to me is a more complicated action that 
>> you need to take more care in doing than something I think I personally 
>> would want to put directly in KDevelop. Also it isn't as "directly" in 
>> the work flow as editing, committing, and even renaming, it is more "off 
>> to the side". But that's just MHO.
> 
> Well, I think it depends. On a large project like KDevelop its certainly
> not apropriate, however if you're working on your own small project that
> you do release sometimes it might be convenient to not have to switch to
> another client. As I said I don't know about other VCS' but with svn its
> just a plain svn copy and thats pretty easy.

Hmm... ok, then maybe what I am thinking of as "tagging" is not what you 
are thinking of as "tagging". It sounds like you are thinking of what I 
call "branching". I'd be OK supporting that in the VCS interface. In 
perforce there are also "labels" which are a combination of a client and 
a revision number. So if you have /branches/3.5, you might have labels 
"3.5.0", "3.5.1", "3.5.2", etc, that correspond to a particular release. 
This might be "3.5.2 is /branches/3.5/... at revision 5127".

What I am thinking of as "branching" would be e.g. creating 
/branches/4.0 containing the contents of /trunk.

>> Ok, like I said the point is just to make a stand-alone application and 
>> not a KDevelop plugin, i.e. I don't want to have to run KDevelop to run 
>> "FooVCS GUI Client". :-)
> 
> Well, your client would more or less only leverage the platform+the
> various VCS plugins available. The actual client code would eventually
> be rather small...

Right... that's the idea. :-)

-- 
Matthew
<insert bad pun... on second thought, better not>





More information about the KDevelop-devel mailing list