[RFC] Workingstyle of different VCS systems

Matthew Woehlke mw_triad at users.sourceforge.net
Wed Apr 11 15:15:48 UTC 2007


(Apologies if this shows up more than once; it seems gmane has been 
"greylisted".)

Andreas Pakulat wrote:
> On 10.04.07 10:25:13, Matthew Woehlke wrote:
> However I already thought about having a ISCMParameter, the problem here
> is: What methods would it have? How can a script create an ISCMParameter
> for a given vcs plugin?

Was that not answered in my previous e-mail (quoted below)? Although as 
you pointed out, I seem to have defined things in such a way that we 
*can* define what an "ISCMParameter" is in a generic way that doesn't 
need to be a black box.

>> I assume the point of all this is to be able to script a checkout or 
>> branch without user interaction? I still think I would use a VCS-defined 
>> object to represent a checkout or branch; it simplifies the interface. 
>> There should be a factory method to create a placeholder object from an 
>> identifier (i.e. the name, above). Then there should be a method to add 
>> a mapping, with an option to make it recursive or not (in perforce, the 
>> difference is '//URL/path/*' vs. '//URL/path/...', so this would be svn 
>> compatible) and an option to specify an exclusion. This method is 
>> allowed to fail if any mapping already exists*, and/or if you request an 
>> excluding (rather than including) mapping.
>  
> I like this idea, so for svn I'd create just 1 mapping having the
> repo-url and the local path. 

Right... except, why just one? :-) Certainly I would assume branching 
can handle many (you might have to do them one at a time, but that's a 
back-end detail), and you can check out several things, again one at a 
time. Doesn't svn even figure out how to correctly do an update when you 
do this? (e.g. the admin directory we have in 3.x?) Or am I imagining that?

> So whats difference between an additional class and having a QMap+Flag
> (for the recursion thing, or anything the plugin wants to provide as
> flags)?

You mean that each item in the QMap has a flag, yes? :-) Hmm... maybe 
that works, although I don't see why you wouldn't just use a list. 
Anyway, this should I think be fine for both perforce and svn, at least. 
What about other VCS's?

-- 
Matthew
Not to be used as a flotation device.




More information about the KDevelop-devel mailing list