This package contains the modified source code of Netbeans' JavaCVS client library (http://javacvs.netbeans.org),
copyrighted by SUN. The initial developer is Robert Greig; parts of the code were contributed by Milos Kleint
and Thomas Singer. Significant refactorings were done by Thomas Singer.

All this source code is published under the SUN PUBLIC LICENSE, that is included. Using these source code
implies that you must ensure to comply to the SUN PUBLIC LICENSE.

