707c46955a33e417b9eadf1697d260b524526998
kuhn
  Tue Nov 27 17:22:25 2012 -0800
fixed to combine dual occurances of same person: e.g.,  kent and Jim Kent
diff --git src/utils/qa/whoMadeIt.csh src/utils/qa/whoMadeIt.csh
index e5445bd..1584def 100755
--- src/utils/qa/whoMadeIt.csh
+++ src/utils/qa/whoMadeIt.csh
@@ -1,66 +1,100 @@
 #!/bin/tcsh
 source `which qaConfig.csh`
 
 ################################
 #  
 #  02-22-07
 #  Robert Kuhn
 #
 #  gets info about who wrote the lines in a program
 #
 ################################
 
 set program=""
 set location=""
 set size=""
 
+# set up equivalence to remove split contributions under two names
+set names=( 'Ann Zweig' 'Brian Raney' 'Brooke Rhead' 'Jim Kent' 'Andy Pohl'\
+  'Larry Meyer' 'Mark Diekhans' 'Kate Rosenbloom' 'Hiram Clawson' 'Tim Dreszer' \
+  'Galt Barber' 'Belinda Giardine' 'Angie Hinrichs' 'Robert Baertsch' )
+set alias=( ann braney rhead kent aamp \
+  larrym markd kate hiram tdreszer  \
+  galt giardine angie baertsch )
+# set names=( 'Jim Kent' )
+# set alias=( kent )
+set aliases=`echo $alias | wc -w`
+
 if ( $#argv != 1 ) then
   echo
   echo "  gets info about who wrote the lines in a program."
+  echo "  expects your source tree in your ~/kent directory."
   echo
   echo "    usage:  program"
   echo
   exit
 else
   set program=$argv[1]
 endif
 
 if ( "$HOST" != "hgwdev" ) then
  echo "\n error: you must run this script on dev!\n"
  exit 1
 endif
 
 cd ~/kent
 set location=`find . -name $program`
 echo
 
 # find out if input location is a directory
 # and prepend the path to each filename
 # omitting dot oh files
-git blame $location >& /dev/null
-if ( $status == 128 ) then
+if ( `file $location | awk '{print $NF}'` == "directory" ) then
   set full=""
   set files=`ls $location | egrep -v '.o$'`
   foreach file ( $files )
-    set full="`echo $full` $location/$file"
+    set full="$full $location/$file"
   end
-  set location=`echo $full`
+  set location="$full"
 endif
 
 foreach file ( $location )
   echo $file
   git blame $file | awk -F'(' '{print $2}' \
     | awk -F'20' '{print $1}' | sort \
     | uniq -c | sort -k2 -nr >& xxOutFilexx
   set size=`cat xxOutFilexx | awk '{total+=$1} END {print total}'`
-  cat xxOutFilexx
+
+  set i=$aliases
+  mv xxOutFilexx tmp$i
+
+  while ( $i > 0 )
+    set first=`cat tmp$i | egrep "$alias[$i]" | awk '{print $1}'`
+    set secon=`cat tmp$i | egrep "$names[$i]" | awk '{print $1}'`
+    set sum=`echo $first $secon | awk '{print $1+$2}'`
+
+    if ( $sum > $first ) then
+      cat tmp$i | grep -v "${first} $alias[$i]" \
+        | sed "/$names[$i]/ s/$secon/$sum/" \
+        | sort -k1,1 -nr > temp
+    else
+      cat tmp$i | sed "s/$alias[$i]/$names[$i]/" > temp
+    endif
+
+    rm -f tmp$i
+    @ i = $i - 1
+    mv temp tmp$i
+  end
+  mv tmp0 xxOutFilexx
+
+  cat xxOutFilexx | awk '{print $1, $2, $3}' | sed "s/ /_/" \
+    | awk -F"_" '{printf("%7s %-10s\n", $1, $2 )}'
   if ( `wc -l xxOutFilexx | awk '{print $1}'` > 1 ) then
     echo "-----" "-----" | awk '{printf("%7s %-10s\n", $1, $2)}'
     echo $size "total" | awk '{printf("%7s %-10s\n", $1, $2)}'
   endif 
   rm xxOutFilexx
   echo
 end
-
 echo
-
+exit
