Is there a way to quickly find all svn:externals references to a URL on-demand, among repositories that we control, using svn, TortoiseSVN, and/or some other tool? (e.g. Plugin/extension, hook scripts, etc.)
If not, would the correct/best way be to create a post-commit hook script that "registers" any added or modified svn:external references in a file or database somewhere, and then finding the external references would reference that info? And we could seed the file/database with svn propget -R svn:externals
(perhaps with some text mangling), right?
Details
We're getting ready to start using svn:externals internally among our developer team for shared source libraries. We'll peg our revs1 in any svn:external reference, to ensure that we can roll back to prior repo states. Most of us use TortoiseSVN as our frontend, most of the time.
As a point of comparison, I've heard that the much (and rightly) maligned Visual SourceSafe had such a feature, something like right-click → "where used". With such a feature, when we want to change a shared module, we can see which projects it may potentially affect.
Note: This question is not a duplicate of any of these, because I'm asking about how to do it quickly, which would require having the info cached. It has been noted that svn propget
can take hours or even days to return, depending on the repository.
- List all svn:externals recursively?
- How to find all entries in SVN repo with an external to a given URL [duplicate]
- Find paths with svn:external properties with certain string?
- Get all projects in SVN that have svn:externals to a certain repository
1 Pegging revisions, a.k.a. "us[ing] explicit revision numbers", as in TortoiseSVN's External Items page.