無視ファイル以外をまとめて svn add、紛失ファイルをまとめてsvn del

作業コピーにあるすべてのバージョン化されていないオブジェクトを再帰的に追加するには、

$ svn add * --force

とやる。

svn add * だと、既にバージョン管理下にあるディレクトリのまだバージョン管理下にないファイルが追加されないから、--force を付けているのだが、この場合、実行したディレクトリ直下のsvn:ignore属性に設定した無視ファイルや無視ディレクトリも追加されてしまう。
また、既にバージョン管理下にあるファイルも追加しようとするので、警告が出て汚い。

結局、svnだけではいい方法はない。

無視ファイルや無視ディレクトリを除いて、Subversionのバージョン管理下にないファイルをまとめてaddしたり、バージョン管理下にあるのになくなった(物理的に削除された)ファイルをまとめてdelするには、svn status の出力をgrepでフィルタしてsedで置き換える以下のようなaliasを設定するとよい。

~/.bashrc

alias svndel="svn st | grep '^!' | sed -e 's/\![ ]*/svn del /g' | sh"
alias svnadd="svn st | grep '^?' | sed -e 's/\?[ ]*/svn add /g' | sh"

これは便利。

svn に登録されていないファイルをまとめて svn add:Goodpic
svn addがめんどくさいので | firegoby

「無視ファイル以外をまとめて svn add、紛失ファイルをまとめてsvn del」への1件のフィードバック

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください