For as long as I can remember PureCM customers have requested the ability to search server files without creating a workspace. For PureCM customers coming from VSS this was the one VSS feature they missed.
We had a working prototype of this feature 3 years ago but it did not make it into the release because it was too slow and was a performance drain on the server. Finally file search will be available in the 2013/2 release thanks to the redesigned database format introduced in 2011/2, a general improvement in server disk speeds with RAID and better algorithms to perform the search.
How Does It Work
You can right-click any version, release, feature or ad hoc stream and select 'Find In Files'.
From here you can enter the text to search and select whether this is case sensitive. If you select 'Use Regular Expressions' then you can enter a regular expression instead of plain text - but this will only be matched for each individual line.
If necessary you can specify a subfolder of the stream you selected to narrow the search as well as the file extensions to consider.
On pressing Find All a list of files matching the search will appear and you can stop the search at any time with the Stop Search button.
Double clicking a file will open the editor for this file with the first match selected. You can expand a file to reveal the text for the first 3 lines which match. Double-clicking on these lines will open the editor with the match in that line selected.
What is the Performance Like
Within our test environment we found that searching a 10GB stream with 35,000 files took 40 seconds. This is obviously an extreme case - typically you will be searching in a much smaller subfolder. We also found that performing the search had very little impact on the PureCM server responsiveness. Other developers can carry on working without any impact on performance. If multiple searches are performed then the performance for each search will be effected but this will have little effect on other developers updating or submitting.
File search can be performed in the PureCM GUI, the command line or the Visual Studio extension.