web-dev-qa-db-ja.com

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

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

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

78
Doug T.

使用 - svn status コマンド:

svn status | grep ^?

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

リポジトリに追加すべきではない特定のファイル(生成されたバイナリなど)が常にある場合は、 svn:ignore 含まれるディレクトリのプロパティ。したがって、svn status

104
Greg Hewgill

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

svn status --no-ignore
43
bleater

Windowsで実行している場合、PowerShellを使用して Greg Hewgill の答えに似たことができます。

(svn stat) -match '^\?'

これは非常に簡単に拡張でき、バージョン管理されていないすべてのファイルを見つけて削除できます。

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

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

15
Damian Powell

または、Windowsコマンドラインから:

svn stat | find "?"
11
crig

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

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

最初の部分はsvn status、その後、出力を [〜#〜] awk [〜#〜] にリダイレクトします。これにより、「最初の文字は '?'でなければなりません」という単純なフィルターが実行され、2番目のパラメーターが出力されます「これはファイルパスです」。

svn statusは常に無視されたファイルをnot印刷します。ファイルまたはパスを追加するには、そのパスを追加します

svn propset svn:ignore "PATH OR PATERN"
1
user2710797