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

| | トラックバック(0)

通常、コマンドsvn add *はすでにバージョン管理下にあるすべてのディレクトリを飛ばします。しかし作業コピーにあるすべてのバージョン化されていないオブジェクトを再帰的に追加したいこともあるでしょう。svn addに --forceオプションを渡すと既にバージョン化されているディレクトリにも再帰的に降りていきます:
$ svn add * --force
A         foo.c
A         somedir/bar.c
A         otherdir/docs/baz.doc
…
Subversion によるバージョン管理


バージョン化されていないディレクトリとファイルをすべてaddして、
紛失ファイルをdelete後にcommitする

$ svn add * --force
$ svn commit
svn: Commit failed (details follow):
svn: Directory <path><file> is missing
$ svn delete <file>
D         <file>
$ svn commit

しかし、svn add * --force では、実行したディレクトリ直下のsvn:ignore属性に設定したファイルやディレクトリも追加されてしまう。
なので、とりあえず以下のようにいったんadd * --forceで追加した後、revertしている。

$ svn add * --force
A         ignore.txt
A         ignoredir
A         ignoredir/ignore.txt
$ svn revert --depth infinity ignore.txt ignoredir/
'ignore.txt' を元に戻しました
'ignoredir' を元に戻しました
$ svn commit

何かもっといい方法はないのだろうか?

=> svn status の出力をsedでフィルタしてsvn add にリダイレクトするaliasを設定するとよい。関連エントリー参照。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 作業コピーにあるすべてのバージョン化されていないオブジェクトを再帰的に追加する

このブログ記事に対するトラックバックURL: http://www.pistolfly.jp/mt/mt-tb-alt.cgi/182