I access a large remote SVN repository. Since I usually only need a tiny subset of its content I did a "sparse checkout":
svn checkout --depth empty svn+ssh://... src
Whenever I need a folder from the repository I can just do
svn up folder
and when I don't need it anymore I use
svn up --set-depth exclude folder
But now I need a complete list of all the files in the repository and I don't want to do a complete checkout just to get the file and folder names.
I already tried svn ls -R
which will indeed list some files I didn't check out but still there are some missing. I know because it does show everything in the current directory. Now I could semi-manually execute svn ls
and svn up --depth empty
for every new-found directory, but I wonder if there is some better alternative.
In contrast to How do I list all files ever committed to the repository? I'm only interested in the current content of the repository and I do not have access to svnadmin
. Neither can I install software on the repository server.
This lists all files recursively:
You can try my utility fast-svn-crawler, it is much faster than "svn list --recursive".
I think that works for current and all subdirectories as I tried. This one lists all branches and tags as well, and all their subdirectories and files.
If you want to get a complete list of all the files and not the folders, you can pipe svn list and grep command like this:
the path to folders listed by
always ends with "/" while file path doesn't. The output is passed as an input to
which excludes all the paths having a trailing "/"; the remaining paths are only related to files.
Example: let's assume we have a repository named myrepo on my.svnserver.com as a domain, and we want to get all the files listed in a subdirectory of myrepo i.e. mysubdir: the command is
Also, if you pipe the result to wc -l command (which prints the number of newlines, as each output line contains one path only), you can get the number of all the files under mysubdir, like this
Without URL
svn list --recursive -r HEAD