boyter / lc

licensechecker (lc) a command line application which scans directories and identifies what software license things are under producing reports as either SPDX, CSV, JSON, XLSX or CLI Tabular output. Dual-licensed under MIT or the UNLICENSE.
GNU Affero General Public License v3.0
124 stars 17 forks source link

Make use of git ls-files for iterating over git repositories #44

Closed pmundt closed 5 years ago

pmundt commented 5 years ago

The current manual walker includes all files contained within a git repository, including files that are not under revision control and not part of the packaged distribution. We now take a slightly different approach in which we try to determine if we are operating on a git repository or not, and then rely on git's ls-files to hand us back a list of files to examine.

In the event that any of the git-based optimized file traversal fails, we simply fall back on the manual walking logic.

boyter commented 5 years ago

Thanks for the PR. Merged.