.svnフォルダとサブコンテンツに加えてRsyncはありますか?

.svnフォルダとサブコンテンツに加えてRsyncはありますか?

Subversionリポジトリとそれがどのように機能するのかよくわからない新しいユーザーに対処します。

簡単に言えば、ランダムな.svnフォルダをコピーしてローカル構造がめちゃくちゃになったので、次のようにしました。

  • ローカル構造をステージングというフォルダにコピーします。
  • 準備ディレクトリからすべての.svnフォルダを繰り返し削除します。
  • 「きれいなフォルダ」のリポジトリをチェックアウトしてください。

今、私たちは最後のステップに達しました。準備フォルダの内容を取り、きれいな内容を上書きすることです。

ステージングディレクトリの内容をクリーンディレクトリにコピーし、クリーンディレクトリのすべてのコンテンツを削除しますが、クリーンフォルダの.svnフォルダはそのままにするコマンドが必要です。

これはrsync操作のように聞こえます。次のコマンドは正しいですか?

rsync -avr --exclude=.svn* [staging] [clean]

ベストアンサー1

rsyncのオプションが-C欲しいものかもしれません。

しかし、マニュアルページの簡単な説明にだまされてはいけません。このオプションはCVSでのみ動作するように見えますが、rsyncのバージョンに応じて、ほぼすべての一般的なバージョン管理システムのファイルをスキップします。

# rsync version: 3.0.7

-C, --cvs-exclude           auto-ignore files in the same way CVS does

...

          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/

          then,  files  listed in a $HOME/.cvsignore are added to the list
          and any files listed in the CVSIGNORE environment variable  (all
          cvsignore names are delimited by whitespace).

おすすめ記事