Как я могу эффективно получить новые каталоги с помощью cvs?

Если другой разработчик добавит новый каталог в репозиторий CVS, я бы хотел, чтобы мое следующее обновление перенесло этот новый каталог в мою рабочую копию. Запуск cvs update этого не делает. Запуск cvs update -d работает, но на это уходит чертовски много времени; он печатает путь к каждому файлу в репозитории и тратит немного времени на обдумывание каждого из них. Запуск cvs update -d <dirname> в родительском каталоге нового каталога выполняет свою работу, но я должен сначала узнать о новом каталоге, и я должен делать это для каждого нового каталога.

Есть ли эффективный способ получить полное обновление, включая все новые добавленные каталоги, с сервера CVS?


person bythescruff    schedule 07.08.2012    source источник
comment
Кроме того, cvs -q update ... подавит вывод всех имен каталогов.   -  person Burhan Ali    schedule 08.08.2012
comment
@BurhanAli Ага, но я почти уверен, что все это время занимает не это. :-)   -  person bythescruff    schedule 12.08.2012


Ответы (1)


Используйте сценарий оболочки, который генерирует настраиваемый список $ CVSIGNORE для этого типа обновления, затем 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. 

Ссылки

person Community    schedule 10.12.2013