lkml.org 
[lkml]   [2012]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectUpdating the .mailmap file
Hello,

I was just browsing the shortlog and it looked to
me as if there are many double entries, i.e. the same person
being there with multiple email addresses.

So I wrote a script, which finds double names and adds them
to the .mailmap file. However manual checking, whether these
are really the same person is required.

---
#!/bin/bash

git shortlog -sne > shortlog.txt

# find double names in the shortlog
cat shortlog.txt |awk '{ NF--; $1=""; print }' |sort |uniq -d | sed 's/^ *//g' > names.txt

while read line
do
echo "process name $line"
# get the current mailmap file in a state where each person is listed
# with their first line:
rm mailmap_tmp*
cat .mailmap |grep -v "^[# ]"|grep -v "^$" | sort > mailmap_tmp1
while read <&9 line2
do
nameonly="$(echo "$line2" |awk '{NF--; print}')"
grep -m1 "$nameonly" mailmap_tmp1 >> mailmap_tmp2
done 9< "mailmap_tmp1"
cat mailmap_tmp2 |uniq > mailmap_tmp3

# find all occurences of one name
cat shortlog.txt |grep "$line" | awk '{ $1=""; print }' | sed 's/^ *//g' > currentname.txt

# get that guy alphabetically sorted into the mailmap file:
echo $line > name
cat mailmap_tmp3 name |sort > mailmap_tmp4

# find the place where we need to insert this
insertbeforeline=$(cat mailmap_tmp4 |grep -A1 "$line" |tail -n1)
if [ "$insertbeforeline" != "" ] ; then
# insert all in the middle of .mailmap:
while read <&9 line2; do
echo "adding line $line2 to mailmap before $insertbeforeline"
sed "/$insertbeforeline/i $line2" .mailmap > mailmap_tmp5
mv mailmap_tmp5 .mailmap
done 9< "currentname.txt"
else
# must appended to end
cat currentname.txt >> .mailmap
fi

git commit -a -m "Updating .mailmap file: Adding ${line}" > /dev/null
echo "---"
done < "names.txt"

rm mailmap_tmp*
rm shortlog.txt
rm names.txt


\
 
 \ /
  Last update: 2012-12-01 20:21    [W:0.029 / U:0.416 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site