<commit_before># GitNStats

Command line utility that reports back statistics about a git repository.

There are many tools out there, but most of them are interested in commits per author and other such things.
GitNStats is an experiment in analyzing how often particular files in a repositor change (and how big those changes were).
The idea is to discover "hotspots" in a code base by determining which files have a lot of churn.

For usage instruction run:

```bash
dotnet run -- --help

# or if you have a pre-packaged binary

gitnstats --help
```

## Installation

Unzip the distribution into your target directory.
The program can be run from this location, added to your PATH, 
or symbolic linked to a location that is already on your PATH.

Symoblic linking to a location already on the PATH (like `/usr/local/bin/`) is recommended as it keeps your path clean.

```bash
# Download release (replace version and runtime accordingly)
cd ~/Downloads
wget https://github.com/rubberduck203/GitNStats/releases/download/1.0.3/osx.10.12-x64.zip

# Create directory to keep package
mkdir -p ~/bin/gitnstats

# unzip
unzip osx.10.12-x64.zip -d ~/bin/gitnstats

# Create symlink
ln -s /Users/rubberduck/bin/gitnstats/gitnstats /usr/local/bin/gitnstats
```

Alternatively, you may want to keep the executable in the `/usr/local/share/` directory.

### .Net Dependencies

This project uses "self-contained" .Net Core deployment.
"Self contained" is quoted because although the *.zip archive includes the .Net runtime,
the .Net runtime has dependencies of it's own that need to be available.
Please see the [list of .Net Core runtime dependencies.][dotnet-deps] and make sure they're installed first. 

## Build

```bash
dotnet restore
dotnet build
```

## Tests

### Unit Tests<commit_msg>Fixed link to dotnet pre-reqs<commit_after># GitNStats

Command line utility that reports back statistics about a git repository.

There are many tools out there, but most of them are interested in commits per author and other such things.
GitNStats is an experiment in analyzing how often particular files in a repositor change (and how big those changes were).
The idea is to discover "hotspots" in a code base by determining which files have a lot of churn.

For usage instruction run:

```bash
dotnet run -- --help

# or if you have a pre-packaged binary

gitnstats --help
```

## Installation

Unzip the distribution into your target directory.
The program can be run from this location, added to your PATH, 
or symbolic linked to a location that is already on your PATH.

Symoblic linking to a location already on the PATH (like `/usr/local/bin/`) is recommended as it keeps your path clean.

```bash
# Download release (replace version and runtime accordingly)
cd ~/Downloads
wget https://github.com/rubberduck203/GitNStats/releases/download/1.0.3/osx.10.12-x64.zip

# Create directory to keep package
mkdir -p ~/bin/gitnstats

# unzip
unzip osx.10.12-x64.zip -d ~/bin/gitnstats

# Create symlink
ln -s /Users/rubberduck/bin/gitnstats/gitnstats /usr/local/bin/gitnstats
```

Alternatively, you may want to keep the executable in the `/usr/local/share/` directory.

### .Net Dependencies

This project uses "self-contained" .Net Core deployment.
"Self contained" is quoted because although the *.zip archive includes the .Net runtime,
the .Net runtime has dependencies of it's own that need to be available.
Please see the [list of .Net Core runtime dependencies.][dotnet-deps] and make sure they're installed first. 

[dotnet-deps]: https://github.com/dotnet/core/blob/master/Documentation/prereqs.md

## Build

```bash
dotnet restore
dotnet build
```

## Tests
{'fraction_non_alphanumeric': 0.08187294633077766, 'fraction_numerical': 0.009857612267250822, 'mean_word_length': 4.13061797752809, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '431848', 'n_tokens_mistral': 1124, 'n_tokens_neox': 1043, 'n_words': 487}