Ceki Gülcü wrote:
> 
> Hello,
> 
> I suppose this horse was thoroughly beaten to death but I still would like to hear 
>about the pros and cons of including binary files in CVS.

I love this horse...

> 
> The advantages are:
> 
> - By including required jar files for an application, the installation becomes 
>easier as the user does not need to fetch them herself.
> 

Definitely.  It also becomes predicatble, as you can't be sure what jar
the user will find or have.

> - Only versions of the binaries known to work with the application are under CVS. 
>This also eases installation.

Yes.
 
> The disadvantages:
> 
> - CVS does not handle binaries very well.

Maybe not, but I think the real issue isn't the storage technology, but
the idea of including them.  For example, just including 'pointers' into
a central jakarta (or Jakarta Commons) managed repository of jars skirts
the technical debate about CVS and binaries and gets you what you want -
the question is how those 'pointers' would work.


> - Increased checkout overhead as the binary files need to be retrieved from the 
>network through the CVS  pserver.

Again, a separate repository would solve it, and an intelligent fetch
would also take care of it - for example, Ant would figure out if a jar
is needed, and go fetch and 'install' in the build for the user, to be
there forever after, until the 'pointer' for that resource is upgraded -
then Ant goes and fetches again.
 
> - The binary file under CVS control might interact with other binaries that the user 
>has. For example, if the user has x.jar on her classpath and x.jar is also under CVS.
> 

The classpath is evil - I think this can be managed through build
scripts or ant just controlling the classpath, right?

> Any other advantages disadvantages? How bad is the overhead of manipulating binary 
>files with CVS? Thanks for your comments, Ceki

I am really interested in this subject - it something we have been
talking a bit (ok, a lot) about for a while on the commons list.  It's
an interesting situation in commons, as it could be viewed as a
mini-jakarta : we have multiple components, all which need to build in
their own way, but will certainly share some commonality such as Ant and
JUnit, and possibly Velocity/Anakia for doc generation.

I think that it's an important thing for a newcomer to be able to just
grab a build or snapshot and be able to build the software, or at least
get something started via Ant - at least let the build tell you what you
need and where to get it.   Ease of use is important here.

I recognize the concerns that Sam and others have about version binding,
but I think that we can solve that, and Gump certainly acts as an
independant watchdog.

geir


-- 
Geir Magnusson Jr.                               [EMAIL PROTECTED]
Developing for the web?  See http://jakarta.apache.org/velocity/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to