On Tue, Apr 2, 2013 at 2:30 PM, Kirk, Benjamin (JSC-EG311) <
benjamin.kir...@nasa.gov> wrote:

> OK, at risk of entering dangerous territory…
>
> I've been using John's recommended git config flags, and have become
> ashamed of the amount of trailing whitespace I leave in source files.
>

I've played around with emacs' whitespace cleanup stuff but I don't like it
mainly because it removes all whitespace from a file you edit, generating
huge diffs.

So I switched to using pre-commit hooks in git.

Name the following script "pre-commit", chmod a+x it, and save it in the
.git/hooks directory of any git repo where you want to use it.  The great
thing is that it only cleans up whitespace from *your commit* not the
entire file.  I've been using it a few weeks now and would go back!

#!/bin/sh

if git-rev-parse --verify HEAD >/dev/null 2>&1 ; then
   against=HEAD
else
   # Initial commit: diff against an empty tree object
   against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi

# Find files with trailing whitespace
for FILE in `exec git diff-index --check --cached $against -- | sed
'/^[+-]/d' | sed -E 's/:[0-9]+:.*//' | uniq` ; do
    # Fix them!
    sed -i '' -E 's/[[:space:]]*$//' "$FILE"
    git add "$FILE"
done



-- 
John
------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to