CVS签出工作是硬编码的,但不是变量

时间:2011-11-14 20:29:16

标签: shell cygwin

我正在使用cygwin使用以下行调用.sh:

    echo cvs co -d"$tmpdir" -r"$revision" "$cvsdir/$file"
    cvs co -d"$tmpdir" -r"$revision" "$cvsdir/$file"

回声打印:

    cvs co -dtmp -r1.2 my_module/interfaces/my_file.sql

错误:

    cvs server: cannot find module  `my_module/interfaces/my_file.sql' 
    -ignored cvs [checkout aborted]: cannot expand modules

有趣的是,如果我使用

    cvs co -dtmp -r1.2 'my_module/interfaces/my_file.sql'
         or
    cvs co -dtmp -r1.2 my_module/interfaces/my_file.sql

而不是:

    cvs co -d"$tmpdir" -r"$revision" "$cvsdir/$file"

它有效(成功检查)。你们有什么想法,为什么会这样?

回声输出的模块路径与我硬编码加单引号完全相同。我尝试过这样的事情:

    cvs co -d"$tmpdir" -r"$revision" "'$cvsdir/$file'"

但是仍未找到该模块。

2 个答案:

答案 0 :(得分:1)

你有没有试过这个:

    echo cvs co -d"$tmpdir" -r"$revision" "$cvsdir/$file" > .cvs_cmd
    cat .cvs_cmd
    source .cvs_cmd
    rm -f .cvs_cmd

答案 1 :(得分:0)

从CVS存储库中结帐时,服务器会查找模块,例如

cvs checkout module1 module2

模块名称在名为CVSROOT/modules的文件中定义。要添加新模块,请修改此modules文件,例如您结帐CVSROOT

cvs checkout CVSROOT

将另一行添加到CVSROOT/modules

mymodule -a relative/path/to/interfaces

并提交更改

cvs commit -m 'Added mymodule' CVSROOT/modules