ファイル群の部分的同期方法

投稿者: | 2007年1月17日

 前回、ファイルの順次マージを支援するツールが用意できた。これでローカルにあるファイルの取り込みは簡単にできるわけだが、リモートにあるファイルはどうだろう?一つずつ持ってきて比較というのでは遅い*1ので、対象ファイルを一括で取り込みたい。

 今、local/にSubversion作業ディレクトリがあり、リモートホスト$hostにあるファイルはremote/$host/にミラーするものとする。somewhere.example.orgから、local/に存在するファイルだけを持ってくるにはどうすればよいか。

 もったいぶってもしょうがないのですぐに答えを示す。実質ワンライナーだね。

 rsync(1)のスラッシュで始まるパターンマッチと、-Rによる相対パス解釈の組み合わせが強力。include/excludeパターンを活用すれば、リモートで余計なディレクトリを突き進むこともない。覚えておきたい手筋。

 もっとも、tipだidiomだとクリップしてありがたがるのではなく、何か捻り出してやろうという気構えが大事。日々工夫。

追記:動かないやつを載せてました。正しいオプションは--files-fromです。日々失敗。

カテゴリー: Tech

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です