2012-08-07 47 views
0

如果其他开发人员将新目录添加到CVS存储库,我希望我的下一个更新将此新目录放入我的工作副本中。运行cvs update不会这样做。运行cvs update -d有,但需要很长时间;它会打印存储库中每个文件的路径名,并花费一点时间思考每个文件。在新目录的父级中运行cvs update -d <dirname>可以完成这项工作,但我必须先了解新目录,并且必须为每个新目录都执行此操作。我怎样才能高效地获得新的目录与CVS?

是否有一种有效的方式从CVS服务器获得完整更新,包括任何新增目录?

+0

作为另外,'cvs -q update ...'会抑制所有目录名称的打印。 – 2012-08-07 21:01:42

+0

@BurhanAli Yep,但我很确定这不是一直都在用的东西。 :-) – bythescruff 2012-08-12 12:52:16

回答

0

使用发生这种类型的更新的自定义$ CVSIGNORE列表中的shell脚本,然后runs cvsupdate -d要做到这一点:

 
CVS has a list of files (or sh(1) file name patterns) that it should ignore while running update, import and release. This list is constructed in the following way. 

    The list is initialized to include certain file name patterns: names associated with CVS administration, or with other common source control systems; common names for patch files, object files, archive files, and editor backup files; and other names that are usually artifacts of assorted utilities. Currently, the default list of ignored file name patterns is: 


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

    The per-repository list in ‘$CVSROOT/CVSROOT/cvsignore’ is appended to the list, if that file exists. 
    The per-user list in ‘.cvsignore’ in your home directory is appended to the list, if it exists. 
    Any entries in the environment variable $CVSIGNORE is appended to the list. 
    Any ‘-I’ options given to CVS is appended. 
    As CVS traverses through your directories, the contents of any ‘.cvsignore’ will be appended to the list. The patterns found in ‘.cvsignore’ are only valid for the directory that contains them, not for any sub-directories. 

In any of the 5 places listed above, a single exclamation mark (‘!’) clears the ignore list. This can be used if you want to store any file which normally is ignored by CVS. 

参考

相关问题