私のシステムですべてのSubversionリポジトリをどのように見つけますか?

私のシステムですべてのSubversionリポジトリをどのように見つけますか?

このコマンドを使用すると、 locate --regex '/.git$' | grep usernameシステム上のすべてのgitリポジトリを見つけることができますが、リポジトリの.svnサブディレクトリに表示されるため、このコマンドlocate --regex '/.svn$' | grep usernameも機能します。

前者は約120台の車両を生産したのに対し、後者は14,000台以上の車両を生産しました。

Subversonリポジトリを見つけるには、どのファイルまたはディレクトリ名を検索する必要がありますか?

答え1

Gitでは、各作業コピーは独自のリポジトリです。 SVNではそうではありません。だから本当に探したいならリポジトリ、デフォルトの場所とローカルシステムにある場合はこれで十分です。

ls /var/svn

本当に探したいとしましょう作業コピー、SVNバージョン1.7以降、.svn作業コピーの最上位レベルにのみファイルを配置するため、このコマンドは

find / -type d -name '.svn'

うまくいくでしょう。または、以前のバージョンのSVNを使用していて、これらのディレクトリが散在している場合は、次のことを試すことができます。

find / -type d -name '.svn' -exec dirname {} \; \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print}'

これにより、サブディレクトリを含むすべてのディレクトリが一覧表示.svnされ、プレフィックスとして他のディレクトリを含まないディレクトリのみが印刷されます。


locate私はその内容を含むコンピュータを見つけました。

$ locate --version
mlocate 0.26
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.

This program is provided with NO WARRANTY, to the extent permitted by law.

このシステムでは、find最後の例と同様のアプローチをとります。

locate -r '/\.svn$' \
| sed 's/^\(.*\)$/"\1"/' \
| xargs dirname \
| sort \
| awk 'NR == 1 || $0 !~ "^"LAST { LAST = $0; print }'

関連情報