2010-07-23 11:48:56 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
2010-08-02 13:49:17 +02:00
|
|
|
cd ..
|
|
|
|
export GIT_DIR=.git
|
|
|
|
git reset --hard
|
|
|
|
|
|
|
|
refs=`cat - | head -1 | cut -d' ' -f1,2`
|
|
|
|
ref_begin=`echo $refs | cut -d' ' -f1`
|
|
|
|
ref_end=`echo $refs | cut -d' ' -f2`
|
|
|
|
|
|
|
|
if [ "$ref_begin" = "0000000000000000000000000000000000000000" ]; then
|
|
|
|
range="" # first push, empty repos.
|
|
|
|
else
|
|
|
|
range="$ref_begin..$ref_end"
|
|
|
|
fi
|
|
|
|
|
|
|
|
articles_dir=`git config --get fugitive.articles-dir`
|
|
|
|
|
|
|
|
added_files=`git log $range --name-status --pretty="format:" | \
|
|
|
|
grep -E '^A' | cut -f2 | sort | uniq`
|
|
|
|
modified_files=`git log $range --name-status --pretty="format:" | \
|
|
|
|
grep -E '^M' | cut -f2 | sort | uniq`
|
|
|
|
deleted_files=`git log $range --name-status --pretty="format:" | \
|
|
|
|
grep -E '^D' | cut -f2 | sort | uniq`
|
|
|
|
|
2011-07-24 20:27:07 +02:00
|
|
|
tmpart=`mktemp fugitiveXXXXXX`
|
|
|
|
tmpadd=`mktemp fugitiveXXXXXX`
|
|
|
|
tmpmod=`mktemp fugitiveXXXXXX`
|
|
|
|
tmpdel=`mktemp fugitiveXXXXXX`
|
2010-08-02 13:49:17 +02:00
|
|
|
ls "$articles_dir"/* > "$tmpart"
|
|
|
|
echo "$added_files" | tr " " "\n" > "$tmpadd"
|
|
|
|
echo "$modified_files" | tr " " "\n" > "$tmpmod"
|
|
|
|
echo "$deleted_files" | tr " " "\n" > "$tmpdel"
|
|
|
|
deleted_files=`comm -23 --nocheck-order "$tmpdel" "$tmpart"`
|
|
|
|
echo "$deleted_files" | tr " " "\n" > "$tmpdel"
|
|
|
|
deleted_files=`comm -23 --nocheck-order "$tmpdel" "$tmpadd"`
|
|
|
|
added_files=`comm -12 --nocheck-order "$tmpadd" "$tmpart"`
|
|
|
|
echo "$added_files" | tr " " "\n" > "$tmpadd"
|
|
|
|
modified_files=`comm -23 --nocheck-order "$tmpmod" "$tmpadd"`
|
|
|
|
rm "$tmpart" "$tmpadd" "$tmpmod" "$tmpdel"
|