You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Walker Joe <Jo...@barclaycard.co.uk> on 2000/09/27 16:28:45 UTC

Source code task

I'm wanting to write a Perforce task.
Perforce is a source code control thing like CVS, and VSS. I don't think it
will be too hard, but I have an implementation question.

The javac task is nice, IMHO, because I can swap between 1.2, 1.3, and jikes
with the flip of a switch - this has been very useful on a number of
occasions. It would also be useful to be able to switch between source
control providers with similar ease.

The alternative is that as more support is written for different source
control systems we end up with tens of different tasks all of which work
differently. (Quick mental tally - CVS, SCCS, RCS, P4, VSS, PVCS, Team
Connection, Clearcase, JavaSafe, ...)
This could make for ant's task list being very complex, when the "Java Way"
seems to be a simpler lowest common denominator approach.

Does this sound sensible?

In the short term I'm going to start on a P4 task.

Joe.



Legal Disclaimer:-

Please be aware that messages sent over
the Internet may not be secure and should
not be seen as forming a legally binding
contract unless otherwise stated.

Re: Source code task

Posted by Stefan Bodewig <bo...@bost.de>.
>>>>> "WJ" == Walker Joe <Jo...@barclaycard.co.uk> writes:

 WJ> The javac task is nice, IMHO, because I can swap between 1.2,
 WJ> 1.3, and jikes with the flip of a switch

I think the situation is different for source control systems. How
often are you going to change the system - and given the work you have
to put into transferring the sources from say CVS to Clearcase,
changing a single line in your build file won't hurt that much.

What works out nicely for javac/jikes is that they share a lot of
attributes people typically want to set, I'm not sure if this holds
true for source control systems. Lets take a look at the task we have
right now:

<!ATTLIST cvs
          date CDATA #IMPLIED
          quiet %boolean; #IMPLIED
          command CDATA #IMPLIED
          noexec %boolean; #IMPLIED
          cvsroot CDATA #IMPLIED
          dest CDATA #IMPLIED
          package CDATA #IMPLIED
          tag CDATA #IMPLIED>

<!ATTLIST vssget
          recursive %boolean; #IMPLIED
          ssdir CDATA #IMPLIED
          date CDATA #IMPLIED
          vsspath CDATA #IMPLIED
          version CDATA #IMPLIED
          writable %boolean; #IMPLIED
          login CDATA #IMPLIED
          label CDATA #IMPLIED
          localpath CDATA #IMPLIED>

dest => localpath, tag => label or version, cvsroot => vsspath+login
but that's all. The rest is either only useful for cvs or for vssget,
at least this is what the authors thought.

You'd either end up with an additional-attributes entry or a bunch of
magic properties (like build.compiler.emacs) for the things not
covered by the common denominator.

I'd say, keep them as separate task - and give the user a chance to
only include the task she actually needs once we have the extension
system in place (Ant 2.0).

 WJ> In the short term I'm going to start on a P4 task.

It could be included as an optional task if you want.

Stefan