SVNからすべてのバージョン管理されていないファイルのリストを取得するにはどうすればよいですか?


80

プロジェクトでいくつかのファイルを作成したことを忘れて、開発中にコミットすることにした場合があります。それから数日後、あなたの仲間はあなたのビルドをSubversionから取り出し、いくつかのファイルが欠落しているように見えると不平を言います。あなたは、ああ、くだらないことに気づきました、私はそれらのファイルを追加するのを忘れました!

Subversionからバージョン管理されていないファイルのリストを取得して、すべてをリポジトリに追加したことを確認するにはどうすればよいですか?

回答:


107

次のsvn statusコマンドを使用します。

svn status | grep ^?

バージョン管理されていないファイルは?で示されます 行の先頭に。

リポジトリに追加してはならない特定のファイル(生成されたバイナリなど)が常にあるsvn:ignore場合は、を使用しているときにこれらのファイルが表示され続けないように、含まれているディレクトリにプロパティを設定する必要がありますsvn status


4
個人的には、常に「svnci」の前に「svndiff」を付けますが、遅い場合もあるので、「svn diff」の前に常に「
svnstat

11
追加したいバージョン管理されていないファイルがたくさんある場合は、次のようにします。 svn st | grep ^? | awk '{print $2} | xargs svn add これにより、バージョン管理されていないファイルが最初に検索され、awkは行の2番目の項目(つまりファイルパス)のみを出力し、xargsはこのパスをsvnの引数にします。追加。
duality_ 2012

7
awkコマンドの最後に一重引用符がありません。コマンドは次のようになりますsvn st | grep ^? | awk '{print $2}' | xargs svn add
jplandrain

46

一部のファイルがignoreステータスに追加されている場合、それらはに表示されませんsvn status。あなたは必要になるでしょう:

svn status --no-ignore

1
私のセットアップではデフォルトでsvnstatusによって無視されているように見えるバイナリファイルにも役立ちます。私はおそらくこれを行ういくつかの設定を知らないでしょうが、-no-ignoreを使用することはこのシナリオで私を助けました。
Andy Weinstein 2017年

私の場合(Linux環境のバイナリファイルの場合)、選択した回答が機能していなかったため、これは受け入れられた回答であるはずです。
Asqan 2018

15

Windowsで実行している場合は、PowerShellを使用してGregHewgillの回答と同様のことを行うことができます。

(svn stat) -match '^\?'

これを非常に簡単に拡張して、バージョン管理されていないファイルや無視されたファイルをすべて見つけて削除することができます。

(svn stat "--no-ignore") -match '^[I?]' -replace '^.\s+','' | rm

それが誰かに役立つことを願っています!


1
これはどのように() -math呼ばれますか?
Pavel Petrov 2016


1

このコマンドを使用して、バージョン管理されていないファイルのすべてのパスを一覧表示できます。

svn status | awk '/^?/ {print $2}'

最初の部分はを実行しsvn status、次に出力をAWKにリダイレクトします。これにより、単純なフィルター「最初の文字は「?」である必要があります」が実行され、2番目のパラメーター「ファイルパス」が出力されます。

svn status無視されたファイルを常に印刷するとは限りません。を使用してそのパスを追加することにより、ファイルまたはパスを追加できます

svn propset svn:ignore "PATH OR PATERN"

これによりsvn status、バージョン管理されていないファイルだけでなく、すべての結果が得られるようです。フィルタは正規表現であるsvn status | awk '/^\?/ {print $2}'ため、コマンドはをエスケープする必要があると思います?
KymikoLoco 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.