37

大規模なリモート SVN リポジトリにアクセスします。私は通常、そのコンテンツの小さなサブセットしか必要としないので、「スパース チェックアウト」を行いました。

svn checkout --depth empty svn+ssh://... src

リポジトリからフォルダーが必要なときはいつでも、私はただ行うことができます

svn up folder

そして、もう必要ないときは使用します

svn up --set-depth exclude folder

しかし今、リポジトリ内のすべてのファイルの完全なリストが必要であり、ファイルとフォルダーの名前を取得するためだけに完全なチェックアウトを実行したくありません。

svn ls -Rチェックアウトしなかったいくつかのファイルを実際にリストすることはすでに試しましたが、まだ不足しているファイルがいくつかあります。現在のディレクトリ内のすべてが表示されるため、わかっています。これで、新しく見つかったすべてのディレクトリに対して半手動で実行できるようsvn lsになりsvn up --depth emptyましたが、より良い代替手段があるのではないかと思います。

これまでにリポジトリにコミットされたすべてのファイルを一覧表示するにはどうすればよいですか? とは対照的です。リポジトリの現在のコンテンツのみに関心があり、アクセスできませんsvnadmin。リポジトリ サーバーにソフトウェアをインストールすることもできません。

4

5 に答える 5

62

これは、すべてのファイルを再帰的にリストします。

svn ls -R URL-OF-REPO
于 2013-02-01T13:00:08.107 に答える
9
svn list --recursive https://myrespository.my.com/Myproject

私が試したように、現在のサブディレクトリとすべてのサブディレクトリで機能すると思います。これには、すべてのブランチとタグ、およびそれらのすべてのサブディレクトリとファイルもリストされています。

于 2013-02-01T12:59:55.763 に答える
7

You can try my utility fast-svn-crawler, it is much faster than "svn list --recursive".

$ svn-crawler https://myrespository.my.com/Myproject
于 2013-03-18T14:20:02.390 に答える
2

URLなし

svn list --recursive -r HEAD

于 2014-07-28T14:03:07.143 に答える
2

フォルダーではなくすべてのファイルの完全なリストを取得したい場合は、次のようにsvn listgrepコマンドをパイプできます。

svn list -R svn://url/to/your/main/folder/on/repo | grep '[^\/]$'

によってリストされたフォルダへのパス

svn list -R svn://url/to/your/main/folder/on/repo

ファイルパスはそうではありませんが、常に「/」で終わります。出力は入力として渡されます

grep '[^\/]$'

末尾に「/」があるすべてのパスを除外します。残りのパスはファイルにのみ関連しています。

例:ドメインとしてmy.svnserver.commyrepoという名前のリポジトリがあり、 myrepoのサブディレクトリ、つまりmysubdirにリストされているすべてのファイルを取得したいとします。コマンドは次のとおりです。

svn list -R svn://my.svnserver.com/myrepo/mysubdir | grep '[^\/]$'

また、結果をwc -lコマンドにパイプすると (各出力行には 1 つのパスのみが含まれるため、改行の数が出力されます)、次のようにmysubdirの下にあるすべてのファイルの数を取得できます。

svn list -R svn://my.svnserver.com/myrepo/mysubdir | grep '[^\/]$' | wc -l
于 2015-12-24T14:17:42.293 に答える