[ disclaimer: I am a fan of keeping the source separate from the outputs,
but in the interest of fairness, I feel I must point out a few items ]

Craig R. McClanahan wrote:
>
> > 3. different projects will create subdirectories of the
> > "build" directory and these subdirectory names will never
> > clash, despite the huge number of open source projects in
> > existence.
>
> If the projects are really different, you should be building
> them someplace other than in your "Jakarta" build directory.
> Then there are no clashes.

I'd like to point out that the lines between "jakarta", "java", and "xml"
Apache projects is a bit arbitrary.  As a concrete example, there is a lot
more in common between the xml-soap and the jakarta-tomcat build processes
(in terms of names of targets, where output is placed, etc) than there is
between jakarta-tomcat and jakarta-regexp.

Many developers have their own ideas of related projects, and mine includes
a few project not only at working-dogs, but also at exolab and even IBM
developerworks.

Even more importantly, the distinction between significant versions of a
project needs to be factored into this.  In particular, the versions of the
servletapi project need to be handled as easily as the versions of the
tomcat project.

> > I don't want to knock the neatness of keeping everything
> > in  a cvs checkout clean and identical to the original,
> > but what are the practical disadvantages of having the
> > build directory inside the checkout, especially if a
> > 'clean' build cleans out the build stuff automatically
> > if you require?
>
> Try doing a "cvs commit" or "cvs update" in your source
> directory -- are the files marked with "?" ones that I
> forgot to register with CVS or are they just outputs of
> the build process?  You have to think about that *every
> single time*.

There is a technological solution to this problem: .cvsignore files

http://www.cvshome.org/docs/manual/cvs_18.html#SEC173

- Sam Ruby

Reply via email to