2012-08-07 43 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. 

參考

相關問題