more robust parsing of git blame
This commit is contained in:
parent
90060d9eef
commit
e10705d13d
|
@ -48,23 +48,25 @@ if [ ${LAUNCH_EDIT} -eq 1 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while read line ; do
|
while read line ; do
|
||||||
epoch=${line:0:10}
|
gdh=$(date --date=@${line:0:10})
|
||||||
sha=${line:11:9}
|
sha=${line:11:40}
|
||||||
author=${line:23}
|
author=${line:52}
|
||||||
echo "Comparing with: "$(date --date=@${epoch})" - ${author}"
|
echo "Comparing with: ${gdh} - ${author}"
|
||||||
# filter files à la mode textconv
|
# filter files à la mode textconv
|
||||||
git show ${sha}^:${PO_FILE} | \
|
git show ${sha}^:${PO_FILE} | \
|
||||||
grep --invert-match \
|
grep --invert-match \
|
||||||
--regexp='^#:' \
|
--regexp='^#:' \
|
||||||
--regexp='^"PO' > ${TMP_DIR}/${sha}.po
|
--regexp='^"PO' > "${TMP_DIR}/${gdh}.po"
|
||||||
# reload current file every time as it may has been modified
|
# reload current file every time as it may has been modified
|
||||||
grep --invert-match \
|
grep --invert-match \
|
||||||
--regexp='^#:' \
|
--regexp='^#:' \
|
||||||
--regexp='^"PO' ${PO_FILE} > ${TMP_DIR}/current.po
|
--regexp='^"PO' ${PO_FILE} > ${TMP_DIR}/current.po
|
||||||
"${DIFFTOOL}" ${TMP_DIR}/${sha}.po ${TMP_DIR}/current.po
|
"${DIFFTOOL}" "${TMP_DIR}/${gdh}.po" ${TMP_DIR}/current.po
|
||||||
done <<< $(git blame -t ${PO_FILE} | \
|
done <<< $(git blame --line-porcelain ${PO_FILE} | \
|
||||||
grep '#, fuzzy$' | \
|
awk '/^[0-9a-f]{40} / { sha=$1 }
|
||||||
awk 'BEGIN {FIELDWIDTHS="10 32 10"} {print $3, $1, $2}' | \
|
/^author / {$1="" ; author=$0 }
|
||||||
|
/^committer-time / { $1="" ; date=$0 }
|
||||||
|
/\s#, fuzzy/ { printf "%-10s %-40s %s\n", date, sha, author}' |
|
||||||
sort --numeric-sort --unique --reverse)
|
sort --numeric-sort --unique --reverse)
|
||||||
|
|
||||||
# clean up temp directory
|
# clean up temp directory
|
||||||
|
|
Loading…
Reference in New Issue
Block a user