2010-09-21

rsync -C で除外されるバージョン管理関連のファイル

rsync の -C オプションは CVS と似たアルゴリズムで同期対象からファイルを除外してくれる。

  • $HOME/.cvsignore
  • CVSIGNORE 環境変数
  • 各 SRC ディレクトリの .cvsignore

を参照してくれるが、それ以外にもデフォルトで除外してくれるパターンもある。

少なくとも rsync 3.0.7 では

      -C, --cvs-exclude
             This is a useful shorthand for excluding a broad range of  files
             that you often don't want to transfer between systems. It uses a
             similar algorithm to CVS  to  determine  if  a  file  should  be
             ignored.

             The  exclude  list is initialized to exclude the following items
             (these initial items are marked as perishable -- see the  FILTER
             RULES section):

                    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 .svn/ .git/ .bzr/

が対象になっている。ということで

  • RCS
  • SCCS
  • CVS
  • Subversion
  • Git
  • Bazzar

これらはデフォルトで対応しているが Mercurial は対応していない。ことが分かった。ちぃ、……覚えられない。

About

例によって個人のなんちゃらです