Index: githelp.sh =================================================================== --- 7de71a831508e51e0985cea173f3f7a7012c82b7/githelp.sh (mode:100755 sha1:e19176d4ef69a2e7c6da6b9893e2c7cdac24760a) +++ uncommitted/githelp.sh (mode:100755) @@ -19,7 +19,7 @@ fork BNAME BRANCH_DIR [COMMIT_ID] help init RSYNC_URL - log [-c] [COMMIT_ID | COMMIT_ID:COMMIT_ID] + log [-c] [-f] [COMMIT_ID | COMMIT_ID:COMMIT_ID] ls [TREE_ID] lsobj [OBJTYPE] lsremote Index: gitlog.sh =================================================================== --- 7de71a831508e51e0985cea173f3f7a7012c82b7/gitlog.sh (mode:100755 sha1:a09ffda484bd859a3bcb1cffcc8fd6f9c65fa8e7) +++ uncommitted/gitlog.sh (mode:100755) @@ -13,8 +13,11 @@ # header Green # author Cyan # committer Magenta +# files Blue # signoff Yellow # +# Takes an -f option to show which files was changed. +# # Takes an id resolving to a commit to start from (HEAD by default), # or id1:id2 representing an (id1;id2] range of commits to show. @@ -24,16 +27,25 @@ colheader="$(tput setaf 2)" # Green colauthor="$(tput setaf 6)" # Cyan colcommitter="$(tput setaf 5)" # Magenta + colfiles="$(tput setaf 4)" # Blue colsignoff="$(tput setaf 3)" # Yellow coldefault="$(tput op)" # Restore default else colheader= colauthor= colcommitter= + colfiles= colsignoff= coldefault= fi +if [ "$1" = "-f" ]; then + shift + list_files=1 +else + list_files= +fi + if echo "$1" | grep -q ':'; then id1=$(commit-id $(echo "$1" | cut -d : -f 1)) || exit 1 id2=$(commit-id $(echo "$1" | cut -d : -f 2)) || exit 1 @@ -49,6 +61,8 @@ $revls | $revsort | while read time commit parents; do [ "$revfmt" = "rev-list" ] && commit="$time" + tree1= + tree2= echo $colheader""commit ${commit%:*} $coldefault; cat-file commit $commit | \ while read key rest; do @@ -73,11 +87,32 @@ fi ;; "") + if [ -n $list_files ]; then + sep= + echo + echo -n " * $colfiles" + diff-tree -r $tree1 $tree2 | \ + while read modes type sha1s file; do + echo -n "$sep$file" + sep=", " + done + echo "$coldefault" + fi echo; sed -re ' / *Signed-off-by:.*/Is//'$colsignoff'&'$coldefault'/ s/^/ / ' ;; + "tree"|"parent") + if [ -z $tree1 ]; then + tree1=$rest + elif [ -z $tree2 ]; then + tree2=$rest + else + tree1=$rest + fi + echo $colheader$key $rest $coldefault + ;; *) echo $colheader$key $rest $coldefault ;;