So the issue here is a recursive symlink. If you look at like: "test/airenv/jsclass" you'll see it symlinks to two directories above. The "correct" behavior would be to do your own recursive globbing like bellman-ford (there might be something better for this case but that's the classical CS algo). The thing you probably actually want to do is set git's `core.symlinks` config to false (see https://mirrors.edge.kernel.org/pub/software/scm/git/docs/git-config.html) so you don't have to worry about it.
Also you probably want to use glob.iglob over glob if you're processing files as you find them. The only difference from glob.glob is that you have to construct a full list before you start processing so you can save memory on large trees.
The following users say it would be alright if the author of this
post didn't die in a fire!