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).