#! /usr/bin/perl # Copyright (c) Perforce Software, Inc., 1997-2008. All rights reserved # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PERFORCE # SOFTWARE, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # User contributed content on the Perforce Public Depot is not supported # by Perforce, although it may be supported by its author. This applies # to all contributions even those submitted by Perforce employees. #print "argv = @ARGV\n\n"; $path = shift ARGV; #The depot spec to search in. $user = shift ARGV; #The current user. $server = shift ARGV; #ip_address:port of your Perforce server. $search = join(" ", @ARGV); #The search phrase. $p4 = "/bin/p4"; #Absolute path to the p4 cli program. #print "path = $path\n\nuser = $user\n\nserver = $server\n\nsearch = $search\n\n"; if (($path eq "//depot/...") or ($path eq "//...")) { print "Path too broad. Select a subdirectory and try again.\n"; exit 1; } open RESULTS, "\"$p4\" -u $user -p $server changes -l \"$path\" |" or die "Couldn't run search command.\n\n"; $change; $desc; $count = 0; while (<RESULTS>) { chomp; if(/^Change/) { $change = $_; } if( /$search/i ) { $desc = $_; print "$change\n"; print "...\n"; print "$_\n"; print "...\n"; $count++; } } if($count ne 0) { print "\nDone searching.\n"; } if($count eq 0) { print "\nNo results found.\n"; } exit 0;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#3 | 7665 | Jason Gibson | Removing obsolete tool. | ||
#2 | 7494 | Jason Gibson | Add license headers. | ||
#1 | 5256 | Jason Gibson |
Adding a P4V custom tool that lets you search for patterns, phrases, etc in submitted changelists. It gives you a right click menu option when selecting a file or directory. |