I would suggest having a separate (external) "typedef" (or whatever the
appropriate Ant concept would be):
<repository id="xyz" type="svn">
<params>
<param name="host" value="myhost"/>
...
</params>
</repository>
Referencing this value by ID would allow programmatic and build script
level references to be made to such a repository without the need to
know the exact details of that repository implementation.
E.g. <scm:commit refrepository="xyz"/> could commit against SubVersion
since "xyz" has been mapped to an svn repository implementation.
Following Ant's norms, the scm:commit task could also have an embedded
repository definition instead and therefore not require the
refrepository attribute, or even have a nested repository element with a
refid attribute etc.
Phil :n.
On Tue, 2005-09-27 at 10:50 +0100, Jose Alberto Fernandez wrote:
> I think that it will be a very good idea, mostly as a stepping stone to
> higher level functionality.
>
> The main reason for not having such a thing is the fact that each
> project knows in advance what kind of repository is being in used. So
> why do we need something abstract?
>
> On the other hand, once you have such an abstracted functionality, I am
> sure we could envision higher level tasks stored on other antlibs that
> may provide project management style functionality irrespective of the
> underlying repository. That would be a very good thing to have.
>
> So I am all for it. The question is what are the concepts that can be
> ported across all different SCMs?
>
> As per syntax, I would much prefer something like:
>
> <scm:commit ...../>
>
> Now, can this be done in such a way as to figure out by itself what is
> the underlying repository is. That would limit the need for magic stuff.
>
> Jose Alberto
>
> > -----Original Message-----
> > From: Kev Jackson [mailto:[EMAIL PROTECTED]
> > Sent: 27 September 2005 07:34
> > To: Ant Developers List
> > Subject: suggestion refactor SCM
> >
> > Hi
> >
> > I've been playing with darcs recently and I've almost finished an
> antlib
> > for it (though I keep being distracted, first Haskell, now Lisp....).
> >
> > 'darcs get' is roughly similar to 'cvs checkout' or 'svn co'
> >
> > I was wondering if it would make sense to refactor the SCM tasks into
> an
> > interface (scm) and have a set of antlibs that implement that
> interface
> > in a vendor specific manner. Such that
> >
> > <scm command="commit">
> >
> > is handled appropriately by each SCM system in it's own way, whilst at
> > the same time exposing a common API to simplify this (very common) set
> > of tasks. I'm thinking it'd be similar to how the <javac> task
> > simplifies compiling regardless of which compiler you want to use.
> >
> > Is this:
> > a - a stupid idea and a colossal waste of time
> > b - a not too stupid idea, but still a colossal waste of time
> > c - not stupid, a colossal waste of time, but it'd be worth doing
> anyway
> > d - none of the above
> >
> > Kev
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]