17 lines
412 B
Bash
Executable File
17 lines
412 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
IFS=$'\n'
|
|
files=( $({ git ls-files | xargs -n1 dirname | sort -u && git ls-files; } | sort -r) )
|
|
unset IFS
|
|
|
|
for f in "${files[@]}"; do
|
|
if [ ! -e "$f" ]; then
|
|
# don't try touching files that don't exist
|
|
continue
|
|
fi
|
|
stamp="$(git --no-pager log -1 --format='format:%ai' -- "$f")"
|
|
touchFormat="$(date --date="$stamp" +'%Y%m%d%H%M.%S')"
|
|
touch --no-dereference -t "$touchFormat" "$f"
|
|
done
|