Note: this is with CVS head of NAnt, as Nant 0.84 does not build on Mono
      due to some interface inconsistency.

When using nant to checkout code prior to build, the target fails unless
usesharpcvslib is specified to be false.  

Here is the build rule we are using:

<target name="cvs" description="checks out the source from cvs">
        <cvs-checkout
                cvsroot=":ext:[EMAIL PROTECTED]:/usr/local/CVS/"
                module="project"
                destination="/home/user/work/test"
                cvsfullpath="/usr/bin/cvs"
                password="XXXXX"
                cvsrsh="ssh" />
</target>

This results in the error:
[cvs-checkout] Unknown command: `/usr/bin/cvs'
[cvs-checkout]
[cvs-checkout] CVS commands are:
[cvs-checkout]         add          Add a new file/directory to the repository
[cvs-checkout]         admin        Administration front end for rcs
....

Since I can't figure how to get Nant to admit how it it is invoking cvs,
(if I run nant with -v, it passes -verbose to cvs, which is not a valid
switch.)
I replaced the cvs binary with a script: 

/usr/bin/cvs:
        #!/bin/bash
        echo basename is $0
        echo args are $1, $2, $3, $4, $5, $6, $7, $8, $9

Nant is constructing a command line in the form:
        /usr/bin/cvs /usr/bin/cvs ...

If the cvsfullpath is removed, it fails differently:
[cvs-checkout] Usage: cvs [cvs-options] command [command-options-and-arguments]
[cvs-checkout]   where cvs-options are -q, -n, etc.
...
[cvs-checkout] Thanks for using the command line tool.
[cvs-checkout] Unknown command entered.
command=[-d:ext:[EMAIL PROTECTED]:/usr/local/CVS/]

This error feels similar, but I am not certain of the overlap.

Lastly, if cvsfullpath is not speified, but but usesharpcvslib is set to
false, nant assumes the name of the cvs executable is cvs.exe, which is
not valid on Unix.  This is admittedly easily worked around and not a
severe problem.

Thus this only works with the following style target:

<target name="cvs" description="checks out the source from cvs">
        <cvs-checkout
                cvsroot=":ext:[EMAIL PROTECTED]:/usr/local/CVS/"
                module="project"
                destination="/home/user/work/test"
                cvsfullpath="/usr/bin/cvs"
                usesharpcvslib="false"
                password="XXXXX"
                cvsrsh="ssh" />
</target>

Thanks for your time.  Let me know if such issues should be directed
elsewhere in the future.
-josh


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to