2012-04-18 18 views
2

私は作成するコミットのリストが長いので、コミットをずらしたいと思っています。だから私がするとき:サブバージョンを使用して修正されたファイルをコミットする

svn st | ACK '^ M'

私はこれらのファイルをコミットしたいだけ

が、これはコマンドラインから可能ですか?

+0

明確にする:変更されたファイルのみをコミットし、削除、追加、または置き換えられたファイルはコミットしないでください。 –

+0

@malenkiy_scotはい、私は変更された*ファイルをコミットしたいだけであることを確認できます。 – crmpicco

答えて

9

xargs commandはこの種のものに役立ちます。

svn st | sed -n 's/^M//p' | xargs svn commit 

あなたがファイル名に空白文字を持っている場合は、sedコマンドは、それぞれの周りに引用符を追加するには、もう少し複雑になり:あなたはスペース文字を含む任意のファイル名を持っていない、あなたが行うことができますと仮定

ファイル名:

svn st | sed -n 's/$/"/; s/^M */"/p' | xargs svn commit 

(私はackに慣れていないんだ - おそらくそれはまた、これらの例でsedの代わりに使用することができる)

+0

-uまたは-vオプションが指定されていない場合、filenameの開始前の文字数が分かります(8です)ので、sedは簡略化できます。svn st | grep '^ M' | sedの/。\ {8 \} \(。* \)/ \ 1/'| xargs svn ci –

+0

あなたの定義は「シンプル」に依存します;-) – slowdog

+0

優秀、sedの最初の例はうまくいきました。私は通常、私の好む選択ツールであるackを使ってみましたが、それを動作させることができませんでした。ありがとう。 – crmpicco

関連する問題