(Cc'ing ant-dev for thread continuity.. please don't reply there:)
Incidentally, 'diff -N' is not a general, nor cross-platform, solution to the problem of how to convey updates. I'd like to invent one though :) I was thinking along the lines of a .jar file containing updates, with an Ant script, META-INF/control.xml, which describes how the contents of the jar must be applied. Basically, a jar file that knows what to do with itself. Much like an RPM or .deb file. These jars are 'applied' to a system by running another Ant script, which: - optionally fetches the jar via a HTTP GET. - verifies the jar signature - unpacks the jar, and transfers control to META-INF/control.xml, which: - Ensures that the files to be replaced/patched validate against a MD5 checksum (to be sure we're not overwriting modifications) - If they do, replace/patch/remove them. - Optionally do things like restart Tomcat, if the updates are for a website. - Control then passes back to the invoking script, which cleans up. My primary use-case is that of distributing updates to a client-managed website. Each 'update' consists of new/modified jars, a few JSPs, and perhaps a web.xml modification. These can't be done via CVS because they're behind a firewall, and can't be done with 'diff', because they're on WinNT. Hence the need for a cross-platform mechanism for applying self-contained updates. Anyone know of something like this, or a better solution? If anyone's interested, I have a prototype (without the jar signature verification or MD5 checksumming), and would be happy to collaborate further in the development of such a system. --Jeff On Thu, Dec 27, 2001 at 05:38:48PM +1100, Jeff Turner wrote: > On Wed, Dec 26, 2001 at 08:36:15PM -0600, Steve Cohen wrote: > > What is the best way for someone not a committer to submit a totally new > > file for the ant CVS repository? Last time I did this, I just sent it > > an an attachment with the bug report I'd submitted. > > > > However, this seems like a kludgey way to go about it. Ideally, it > > seems to me, a new file should fit into the CVS patch file the way > > anything else does. But of course, since you haven't checked it out, > > CVS knows nothing about it and cvs diff won't work. Is there a way to > > get this into the patches file? Or is sending it as a separate > > attachment the only way? > > One way is to: > > a) get the cvsutils scripts from http://www.red-bean.com/cvsutils/. > Worth getting anyway. I don't know what I'd do without 'cvsco' :) > > b) Do a 'cvsdo add <file>', which modifies CVS/Entries to mark the file > as new (without contacting the server). > > c) Generate the diff with 'cvs -RuN' (Recursion, unified, New files). > 'man diff' says: > > -N > --new-file > In directory comparison, if a file is found in only one directory, > treat it as present but empty in the other directory. > > > I can add this to the task guidelines if it's not deemed to hackish :) > > > --Jeff > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>