VCS Interface classes
Matthew Woehlke
mw_triad at users.sourceforge.net
Mon Apr 30 22:15:07 UTC 2007
Andreas Pakulat wrote:
> On 30.04.07 14:39:30, Matthew Woehlke wrote:
>> Andreas Pakulat wrote:
>>> Not 100% following here, but IMHO that means we should have something
>>> like this:
>>>
>>> class Revision
>>> {
>>> enum RevisionType {
>>> Number,
>> Does this consider that IIRC a cvs version "number" is e.g. "1.2.15"?
>
> Uhm, well its just a flag, what really is inside the QVariant is
> determined by whoever builds the revision. I mean for Number we can say:
> Try "int" fall back to "QString".
Ok, I wasn't sure. Thanks for clarifying.
>>> Or don't we need Branch/Tag as Revision kind of Parameter? I think for
>>> CVS thats needed, for SVN branch/tag would mean another repo location,
>>> how is it with perforce?
>> I'm not sure how branch works with svn, I guess it is the revision of
>> the file in e.g. /trunk when the branch was done?
>
> I was thinking that svn would just ignore this, i.e. it would use solely
> the url, same for tag. If a VCS does need an identifier, like CVS does
> then its in the Revision. If a VCS doesn't need an identifier for
> identifiying a branch then it just ignores the Revision parameter. Or is
> that too much "magic" behind the scenes?
Wait, there was "branch" *and* "tag"? Ok, I need to read closer. In that
case, "label" is I guess closest to "tag", and there is no "branch", at
least not in the way I am thinking. So I am increasingly convinced we
should not have these (i.e. use PluginSpecific).
Perforce has such a critter as a "label", which is a list of
fully-qualified files (i.e. repo path plus revision). You create a label
by giving a client spec, and you can "sync" a label to update the
versions associated with the label (possibly you can manipulate the
label in other ways). However, a label /does not create additional repo
paths/. You can use a label to specify a version, such as 'do an
update(), but instead of updating to HEAD, update to <label>', which
uses the label to decide what version of the file you want.
cvs might have something like that, although I think what cvs does is
more akin to "tagging" in svn. AFAIK svn does not have anything like
"labels" in perforce. IOW I think this belongs squarely in the
PluginSpecific category.
--
Matthew
If you believe you received this e-mail in error, you are probably sadly
mistaken, but if not, aren't you lucky?
More information about the KDevelop-devel
mailing list