abuse-the-force/examples/git-changed

37 lines
947 B
Bash
Executable File

#! /bin/bash
###############################
# Author: Ian (ViViDboarder)
# Description: Simple command to generate lists of
# changed files. Designed to work with AbuseTheForce
###############################
gitismerge () {
local sha=$1
msha=$(git rev-list --merges ${sha}...${sha}~1)
# If commit returned is the one passed it, it is a merge
[ -z "$msha" ] && return 1
return 0
}
if [ -z "$1" ]; then
echo "Usage:"
echo "git-changed commit [commit 2]"
echo ""
echo "If one commit is provided:"
echo " Return a list of all files changed in that commit"
echo ""
echo "If two commits are provided:"
echo " Return a list of all files changed between commits"
exit 0
fi
# If there is only one parameter, return the files changed in that commit
if [ -z "$2" ] && gitismerge $1; then
git diff-tree --no-commit-id --name-only $1
else
git diff --no-commit-id --name-only $1 $2
fi