0

如果另一个开发人员将新目录添加到 CVS 存储库,我希望下一次更新将这个新目录带入我的工作副本。跑步cvs update不会这样做。跑步cvs update -d可以,但需要很长时间;它打印存储库中每个文件的路径名,并花一点时间考虑每个文件。在新目录的父目录中运行cvs update -d <dirname>可以完成这项工作,但我必须首先了解新目录,并且我必须为每个新目录执行此操作。

有没有从 CVS 服务器获取完整更新(包括任何新添加的目录)的有效方法?

4

1 回答 1

0

使用为此类更新生成自定义 $CVSIGNORE 列表的 shell 脚本,然后runs cvsupdate -d执行以下操作:

CVS 有一个在运行更新、导入和发布时应该忽略的文件列表(或 sh(1) 文件名模式)。该列表按以下方式构建。

    该列表被初始化为包括某些文件名模式:与 CVS 管理相关联的名称,或与其他常见源代码控制系统相关联的名称;补丁文件、目标文件、存档文件和编辑器备份文件的通用名称;以及其他通常是各种实用程序工件的名称。目前,被忽略的文件名模式的默认列表是:


        RCS SCCS CVS CVS.adm
        RCSLOG cvslog.*
        标签 TAGS
        .make.state .nse_depinfo
        *~ #* .#* ,* _$* *$
        *.old *.bak *.BAK *.orig *.rej .del-*
        *.a *.olb *.o *.obj *.so *.exe
        *.Z *.elc *.ln
        核

    如果该文件存在,则 '$CVSROOT/CVSROOT/cvsignore' 中的每个存储库列表将附加到列表中。
    如果存在,则将主目录中“.cvsignore”中的每个用户列表附加到列表中。
    环境变量 $CVSIGNORE 中的任何条目都将附加到列表中。
    附加给 CVS 的任何“-I”选项。
    当 CVS 遍历您的目录时,任何 '.cvsignore' 的内容都将附加到列表中。'.cvsignore' 中的模式仅对包含它们的目录有效,对任何子目录无效。

在上面列出的 5 个位置中的任何一个中,一个感叹号 ('!') 都会清除忽略列表。如果您想存储通常被 CVS 忽略的任何文件,则可以使用此选项。

参考

于 2013-12-10T01:21:51.257 回答