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]>

Reply via email to