<h1>Release Notes v0.2.0</h1>
The full changelog can be found [here](https://github.com/nomisreual/git_alert/compare/v0.1.0...v0.2.0).
<h2>What's Changed</h2>
1. `.traverse()` of `GitAlert` does not invoke `.check()` itself. Hence,
`.check()` needs to be invoked separately (breaking change).
2. `.check()` now checks all repositories in the list of repositories and
updates their entry accordingly (breaking change).
3. `.repos` of `Repositories` is now of the following form:
`dict[dict[str, str]] = []`. Each key in the directory is equal to the
path of the repository. Hence, uniquely identifying repositories in the
dictionary and allowing for faster look-ups.
4. `.traverse()` performance improvement by looking for *.git*
directories in each directory instead of looping through directories
until a *.git* directory is found. This also means that *nested* git
repositories (*.git* directories in sub-directories of a directory
containing a *.git* directory) are excluded. In general, nesting git
repositories is not a good idea and preliminary testing showed
significant performance increases, hence the change.
5. New feature: it is now possible to additionally pass a list of
directories that shall be excluded by *git_alert*. To be excluded paths
can be passed in with a new flag: `--ignore /path/one:/path/two`
6. Git Alert now keeps track of the number of found repositories and the
number of dirty repositories and prints a short summary containing this
information.
<h2>Reasoning</h2>
- No. 1 and No. 2 separate traversing the file system from checking
individual found repositories.
- No. 3 The new representation of repositories allows for easier access
to data on repositories. Also looking up one specific repository is now
faster.
- No. 4 Go burr!
- No. 5 Excluding directories reduces runtime.
- No. 6 Enables short descriptive summaries and also enables new angles
for testing.