It is not the find command that is at fault here. The find command is doing exactly what you are telling it to do e.g. it is finding all occurrences of the regulare file named fs-type
in the whole of your filesystem.
You are then passing the results of the find command to svnlook tree
.
The svnlook tree
command expects a directory as it's parameter not a regular file like you are giving it. The directory you pass to svnlook tree
should have a file called format
which contains the revision number of the repository this is why you get the error message above.
It is the svnlook
command that is giving you the error message you are seeing. What you need to do is figure out which directory in the path /var/lib/svn/repos/
is the correct one to pass to svnlook
.
You would also help yourself by reading some information on svn to better understand the system you are working with.
EDIT
There is no easy way to find all svn repositorys
You can search for all .svn directories on a system and run svn info
on them then inspect the output for "Repository Root:
". If you have many projects in a common repository then the output of this will need passing through uniq thus
sudo find / -name .svn -exec dirname {} \; | \
xargs svn info | grep "Repository Root:" | uniq \
sed 's/Repository Root: file:\/\///'
You'll get something like /var/svn/repos
as output.
The above lists all the repositorys for projects scattered around your filesystem. You can then
svnlook tree /var/svn/repos |grep /
to find what you want for each repository listed in the output from the command above.
The only problem with the method above is that if a directory tree has been deleted and it contained an project under svn control and the project was in a unique repository then you will not find it.