hey, fellas, Some of you may have noticed my rant about updating CVS'd files to specific versions using ant. i've created a subclass of the standard Cvs task which behaves identically, plus adds the following features:
Three new properties: revisionList="1.3 path/to/file,1.5 path/to/file2" revisionFile="path/to/file_containing_list_of_revs" doDirKludge=boolean (default = false) revisionList runs cvs update to get specific revisions of the given files. revisionFile takes a file in the format: 1.3 path/to/file 1.4 path/to/another/file HEAD some/other/file ... and processes it just like (and in addition to) the revisionList. doDirKludge is best explained with an example: Assume you have the following existing dir structure in your build tree: src/com/mycompany/tools but you have no directories under that checked out. If you now do a: cvs up -r 1.4 src/com/mycompany/tools/email/checker/AddressChecker.java cvs will fail because the directory 'checker' does not exist in your local tree. The ant-equivalent of the above would be: <cvsupdate failonerror="true" � revisionList="1.4 src/com/mycompany/tools/email/checker/AddressChecker.java" /> or: <cvsupdate failonerror="true" � revisionFile="file_with_list_of_updates"/> With doDirKludge enabled, when it is asked to update a file in a not-yet-existing path, this object will automatically seek out and update the deepest path which it much check out to allow this update to succeed. Thus, in this case it would do: � cvs update -d src/com/mycompany/tools/email It updates 'email' because that's deepest directory it must update to allow the above 'cvs up' command to work. After checking out the directory, it would then do the update to the specified revision of AddressChecker.java. Anyway... If this sounds useful to anyone, just let me know and i'll send it your way. ----- stephan Generic Universal Computer Guy [EMAIL PROTECTED] - http://www.einsurance.de Office: +49 (89) �552 92 862 Handy: �+49 (179) 211 97 67 "I ain't gen'rally given to physicality of that nature but it saves a lot of arguing." -- Nanny Ogg -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
