Instead of jumping through hoops to get the ignore list right just use git-archive to get a clean source tarball.