##### Search CVSGrab

## Frequently Asked Questions

Installation

1. How do I install CVSGrab?
2. Which version of Java is supported?
3. How can i run cvsgrab as an Ant task?

Error messages

1. I have the following warning:
   [INFO] CVS Root not found, there may be issues if ViewCvs is used with multiple repositories
   [INFO] Use the parameter -projectRoot <root> to remove this warning
   What should i do?
2. I have the following warning:
   Unknown file type for CHANGELOG, assuming it's binary
   What should i do?

Connection issues

1. How can i use a proxy?
2. The site hosting the web interface is password-protected. How can i authenticate on it?
3. How can i speed up downloads?

Repository issues

1. What should i use as the root url, what should i use as the package path?
2. How can i give another name to the folder that's being checked out?
3. Can CVSGrab work with cvsweb or other exotic cvs web interface?
4. CVSGrab fails to autodetect the type of the cvs web interface used, what can i do?
5. CVSGrab browses the directories but fails to download any file, what can i do?
6. How can i use CVSGrab on a repository with multiple root?

Functionality

1. Why is CVSGrab written in Java?
2. Can i checkin modified or new files to the repository? Can i send patches?
3. Can i checkout modules?

## Installation

Installation

How do I install CVSGrab?

  First you need a Java virtual machine, version 1.2 or better. Go to http://java.com/ if you don't have a recent version of Java on your computer.

  Add java.exe, located under the bin folder of your Java installation, to the PATH environment variable.

  On Windows, unzip cvsgrab-2.0-bin.zip, and set the environment variable CVSGRAB_HOME to the installation directory of cvsgrab, or modify cvsgrab.bat and uncomment the line set CVSGRAB_HOME= .

  On Unix, untar cvsgrab-2.0-bin.tar.gz, and set the environment variable CVSGRAB_HOME to the installation directory of cvsgrab.

  Note: On Windows, environment variables can be defined from the Dos command line with:
  set ENVIRONMENT_VARIABLE = value
  Or for Windows XP, from Control Panel / System / Advanced tab / Environment variables button

Which version of Java is supported?

  Java 1.0 and 1.1 won't work at all, Java 1.2 onwards should work well, and Java 1.4 is the version i'm using for the tests and it's also the version to use if you have issues with SSL or stuff like that.

How can i run cvsgrab as an Ant task?

  Install the cvsgrab task in Ant by using the following:

  <property name="cvsgrab.dir" value="[Your CVSgrab installation directory]" />
  <taskdef name="cvsgrab" classname="net.sourceforge.cvsgrab.CVSGrabTask" classpath="${cvsgrab.dir}/lib/cvsgrab.jar"/>

  Then the <cvsgrab> task is available in your Ant build script.

## Error messages

Error messages

I have the following warning:
[INFO] CVS Root not found, there may be issues if ViewCvs is used with multiple repositories
[INFO] Use the parameter -projectRoot <root> to remove this warning
What should i do?
  If you can download files from the repository without any trouble, then you can safely ignore this message.
  If you cannot download files from the repository, then look if in the url or in the web page there is some indication of a cvs root, and use this value for the -projectRoot parameter.

I have the following warning:
Unknown file type for CHANGELOG, assuming it's binary
What should i do?
  If you don't use the diff functionality, and if you don't need to use the files that you have checked out using cvsgrab with another cvs client, then you can safely ignore this warning and do nothing.
  File types are detected from their pattern. To add a new file type, edit the file FileTypes.properties located in the installation folder of cvsgrab, and add either the full file name with the type, or the file pattern with the type.
  For example, you can add:
  CHANGELOG=text
  *.bin=binary
  Then run cvsgrab a second time and it should work fine.

## Connection issues

Connection issues

How can i use a proxy?

  Use the following arguments: -proxyHost [address of the proxy] -proxyPort [port of the proxy]
  Example: -proxyHost fireawll.mycompany.com -proxyPort 8080

  If the proxy requires authentification, you can use -proxyUser [user name for the proxy] -proxyPassword [password for the proxy]
  Example: -proxyUser myLogin -proxyPassword myPassword

  If the proxy requires authentification with NTLM, like MS proxy, you can use -proxyNTDomain [NT domain]
  Example: -proxyUser ntLogin -proxyPassword ntPassword -proxyNTDomain ntDomain
  Errors of the kind: java.io.IOException Server returned HTTP response code: 407 for URL seem to be caused by the lack of NT domain authentification.
  Note that you need the Java Cryptography extention ( JCE ) package installed or upgrade to Java 1.4 to use this feature.

The site hosting the web interface is password-protected. How can i authenticate on it?

  If the web site uses standard http authentification (a message box pops up on your browser and asks for your user name and password), then you can use the following arguments: -webUser [user name] -webPassword [password]
  Example: -webUser joe121 -webPassword xyz123

How can i speed up downloads?

  Enable simultaneous downloads, it should give you a good performance boost when downloading a repository for the first time.
  Use the following arguments: -connections [number of connection]
  Example: -connections 3 will open 3 simultaneous downloads, recommanded value for DSL connections.

## Repository issues

Repository issues

What should i use as the root url, what should i use as the package path?

  On ViewCVS, the root url is the url you get when you click on the element under [brackets] on the Current directory line.
  For example, on the following site, http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ant.core/ , you have this line:
  Current directory: [Eclipse_Project] / org.eclipse.ant.core
  Click on [Eclipse_Project], this gives you the root url to use: http://dev.eclipse.org/viewcvs/index.cgi/
  And the package path is org.eclipse.ant.core/

  As a general rule, the root url should end with .cgi/ or .py/ or viewcvs/ or source/, the package path is the rest of the url.
  Do not include any query strings like #dirlist or ?cvsroot=repo in the root url or the package path.

How can i give another name to the folder that's being checked out?

  Let's suppose you have -destDir c:/tmp and -packagePath myProject/myPackage-v-2.0
  If you run cvsgrab, it will checkout the files to the forder c:/tmp/myProject/myPackage-v-2.0
  To checkout files to c:/tmp/myPackage for example, you need to add the parameter -packageDir myPackage

Can CVSGrab work with cvsweb or other exotic cvs web interface?

  Yes for cvsweb 2.0, and yes for many other types of web interfaces, but if it doesn't work for you, please give me the url to the site, i should be able to provide support to it. Add this as a feature request in SourceForge.

CVSGrab fails to autodetect the type of the cvs web interface used, what can i do?

  File a bugreport on Bug tracker and give the url of the size you were trying to access.

CVSGrab browses the directories but fails to download any file, what can i do?

  File a bugreport on Bug tracker and give the url of the size you were trying to access.

How can i use CVSGrab on a repository with multiple root?

  If you have a repository that you access with urls of the type http://cvs.cocoondev.org/cgi-bin/viewcvs.cgi/fins/?cvsroot=jfchart (with ViewCVS 0.9.2 with multiple repositories installed), then try the following command to grab your files:
  cvsgrab -rootUrl http://cvs.cocoondev.org/cgi-bin/viewcvs.cgi/ -package fins -queryParams cvsroot=jfchart -destDir c:/checkout
  This is not necessary with ViewCVS 1.0 as cvsgrab can autodetect the name of the repository with this version.

## Functionality

Functionality

Why is CVSGrab written in Java?

  Because i know Java best, and it works on most operating systems. And there are great libraries available that help me to do the job better and faster.

Can i checkin modified or new files to the repository? Can i send patches?

  No! CVSGrab provides only the functionality available from the web interface, and right now it's not possible to get write access to the cvs repository from any web interface. Or give me proof if i'm wrong.

Can i checkout modules?

  Modules are a convenient functionality of cvs that groups different packages under the same name. Unfortunately it's not yet supported by cvsgrab, but maybe in the 2.3 release...