Android中用Git来抓取你感兴趣列表的提交log

时间:2022-11-05 15:31:51

    如题所述,用到的命令其实很简单,关键的就这一句

git log --stat --author=pattern
在这一句命令的基础上,我写了一个脚本用于抓取一个list中所有人的提交log,以及每次提交的文件

#!/bin/bash

#the script could catch the changelog list of openplatform kernel and android
#use this script,you should modify the three information of yours
#1.HOME_NAME
#2.Add the author into the authors list
#3.set the root path of the project

HOME_NAME=xh.huang

#set the author list in order to match which committing is from ourselves
authors=(aaaaaa@google.com.cn
bbbbbb@google.com.cn
cccccc@google.com.cn)

#init the path which project you should catching the log list
PATH_KERNEL="/home/$HOME_NAME/kernel"
PATH_ANDROID="/home/$HOME_NAME/jb-4.2"

#init the result file of change log list which to save
RESULT_DIR="/home/$HOME_NAME/changeloglist"
RESULT_KERNEL="kernel.changelog"
RESULT_ANDROID="android.changelog"
RESULT_PROJECT=(kernel.changelog android.changelog)

#build the store where to save the result
mkdir $RESULT_DIR
cd $RESULT_DIR
for result in ${RESULT_PROJECT[*]}
{
rm -rf $result
touch $result
}

#catch the changeloglist of kernel
PATH_RESULT_KERNEl=$RESULT_DIR"/"$RESULT_KERNEL
echo "*************************************************************************" >> $PATH_RESULT_KERNEl
echo "The project of " $RESULT_KERNEL "changeloglist" >> $PATH_RESULT_KERNEl
echo "*************************************************************************" >> $PATH_RESULT_KERNEl
cd $PATH_KERNEL
for author in ${authors[*]}
{
git log --stat --author=$author >> $PATH_RESULT_KERNEl
}

#catch the changeloglist of android
PATH_RESULT_ANDROID=$RESULT_DIR"/"$RESULT_ANDROID
echo "*************************************************************************" >> $PATH_RESULT_ANDROID
echo "The project of " $RESULT_ANDROID "changeloglist" >> $PATH_RESULT_ANDROID
echo "*************************************************************************" >> $PATH_RESULT_ANDROID
cd $PATH_ANDROID
for author in ${authors[*]}
{
repo forall -c git log --stat --author=$author >> $PATH_RESULT_ANDROID
}
上面的脚本可以拿来直接用,你可以根据需要进行修改,其中repo forall是对Android中的每个project执行后面的git命令