- #!/usr/local/bin/perl5
- # -*- perl -*-
- use P4CGI ;
- use strict ;
- #
- #####################################################################
- ##
- ## CONFIGURATION INFORMATION
- ## All config info should be in $configFile (see init() in P4CGI.pm)
- ##
- #####################################################################
- ##
- ## List All Branches
- ##
- #####################################################################
- # Set back references
- my $homepage="index.cgi";
- my $backtohome="Back to Home" ;
- # Get branches
- my @branches ;
- &P4CGI::p4call(\@branches, "branches" );
- foreach (@branches) {
- $_ =~ s/^Branch (\S+).*$/$1/ ;
- }
- # Print title and legend
- print "",
- &P4CGI::start_page("P4 Branches",
- &P4CGI::ul_list("<b>Owner:</b> to see P4 user info",
- "<b>View left-side mapping:</b> to see changes for path",
- "<b>View right-side mapping:</b> to see changes for branch"),
- $homepage,$backtohome) ;
- # Print number of branches
- "",
- "<b>",scalar @branches,"</b> branches:<br>" ;
- # Print branch info
- "",
- &P4CGI::start_table() ;
- # Get branch info
- foreach (@branches) {
- local *P4 ;
- my $branch=$_ ;
- my $update ;
- my $access ;
- my $owner ;
- my $desc ;
- my @view ;
- &P4CGI::p4call(*P4, "branch -o $_" );
- while(<P4>) {
- chomp ;
- next if /^#/ ;
- next if /^\s*$/ ;
- /^Update:\s(.*)$/ and do { $update=$1 ; } ;
- /^Access:\s(.*)$/ and do { $access=$1 ; } ;
- /^Owner:\s(.*)$/ and do { $owner=$1 ; } ;
- last if /^Description:/ ;
- }
- my $descWhiteSpace ;
- while(<P4>) {
- chomp ;
- last if /^View:/ ;
- next if /^\s*$/ ;
- unless(defined $descWhiteSpace) {
- /^(\s*)/ ;
- $descWhiteSpace = $1 ;
- } ;
- s/^$descWhiteSpace// ;
- if(defined $desc) {
- $desc .= "<br>$_" ;
- }
- else {
- $desc .= $_ ;
- }
- }
- while(<P4>) {
- next if /^\s*$/ ;
- push @view,$_ ;
- }
- # Fix up data
- $owner = &P4CGI::ahref(-url => &P4CGI::LU_URL(),
- "USER=$owner",
- $owner) ;
- my $view ;
- foreach (@view) {
- s/^\s*(\S+\s+\S+)\s*/$1/ ;
- my ($from,$to) = split /\s+/ ;
- $from =~ s/^\/\/// ;
- $to =~ s/^\/\/// ;
- my @from = split /\//,$from ;
- my @to = split /\//,$to ;
- my $common = "//" ;
- while($from[0] eq $to[0]) {
- $common .= shift @from ;
- $common .= "/" ;
- shift @to ;
- }
- $from = $common . join("/",@from) ;
- $from = &P4CGI::ahref(-url => &P4CGI::CHB_URL(),
- "FSPC=$common" . join("/",@from),
- $from) ;
- $to = $common . join("/",@to) ;
- $to = &P4CGI::ahref(-url => &P4CGI::CHB_URL(), "BRANCH=YES",
- "FSPC=$common" . join("/",@to), $to) ;
- if (defined $view) {
- $view .= "<br>" ;
- }
- else {
- $view .= "" ;
- } ;
- $view .= "$from $to" ;
- } ;
- "",
- &P4CGI::table_row({-type=>"th",
- -align=>"right",
- -valign=>"center",
- -text=>"Branch:"},
- "<font size=+2><b>$branch<b></font>"),
- &P4CGI::table_row({-type=>"th",
- -align=>"right",
- -text=>"Update:"},
- "$update"),
- &P4CGI::table_row({-type=>"th",
- -align=>"right",
- -text=>"Access:"},
- "$access"),
- &P4CGI::table_row({-type=>"th",
- -align=>"right",
- -text=>"Owner:"},
- "$owner"),
- &P4CGI::table_row({-type=>"th",
- -align=>"right",
- -valign=>"top",
- -text=>"Description:"},
- {-bgcolor => "white",
- -text => "<tt>$desc</tt>"}),
- &P4CGI::table_row({-type=>"th",
- -align=>"right",
- -valign=>"top",
- -text=>"View:"},
- "<tt>$view</tt>"),
- &P4CGI::table_row(undef, "<hr>") ;
- close P4 ;
- }
- # End the table, end the page
- &P4CGI::end_table(),
- &P4CGI::end_page() ;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 275 | Diane Holt |
Modify for 99.2 -- change "Date" to "Update" and "Access" for client and branch info. |
25 years ago | |
#1 | 271 | Diane Holt | The Perl files for P4DB. These (almost) match the files in rev 1 of the p4db.tar file --... a few files have some minor cosmetic changes in the code, and chv.cgi has a Legend item added that was missing in the one in the tar-file. These files, at rev 1 (and the files in p4db.tar at rev 1), are suitable for for running the app with release 98.2 of P4. « |
25 years ago |