https://github.com/kcartlidge/commitlist
Get a nice readable commit summary for multiple repos over the last *x* number of days, optionally filtered by author.
https://github.com/kcartlidge/commitlist
commit git history
Last synced: 2 months ago
JSON representation
Get a nice readable commit summary for multiple repos over the last *x* number of days, optionally filtered by author.
- Host: GitHub
- URL: https://github.com/kcartlidge/commitlist
- Owner: kcartlidge
- License: gpl-3.0
- Created: 2023-07-24T22:58:52.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-26T08:33:56.000Z (almost 3 years ago)
- Last Synced: 2025-02-08T00:41:31.207Z (over 1 year ago)
- Topics: commit, git, history
- Language: C#
- Homepage:
- Size: 26.3 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Commit List
- Do you work on multiple projects?
- Sometimes forget what stuff you've done?
- Need a quick summary of recent commits?
Use *Commit List* to get a nice readable commit summary for multiple repos over
the last *x* number of days, optionally filtered by author.
## Contents
- [Installing](#installing)
- [Running](#running)
- [Sample output](#sample-output)
- [Generating new builds](#generating-new-builds)
- [CHANGELOG](./CHANGELOG.md)
- [LICENSE](./LICENSE)
## Installing
*Commit List* is a single file tool. You do not need to run an installer.
There are [pre-built executables in the builds folder](./builds) for *Windows*, *Mac OS*, and *Linux*.
That said, you may prefer to place it somewhere more convenient than the
folder you downloaded it to. Here's a couple of examples for Linux/MacOS.
*In Windows* you could use Windows Explorer to move it into a folder that
is in your `path` using copy/paste.
Linux/MacOS example for copying the relevant build into your home folder:
```sh
# copy
cd
cp builds/macos-arm64/CommitList ~
# run
cd
~/CommitList
```
Linux/MacOS example for creating a link in a folder that is in your path, making it
available everywhere in your Terminal:
```sh
# link
cd
sudo ln $(pwd)/builds/macos-arm64/CommitList /usr/local/bin
which CommitList
# run
cd
CommitList
```
## Running
```sh
CommitList [-days=] [-author=] [--deep] [--showcommand]
```
- *days* - inclusive number of previous days to show (defaults to yesterday)
- *author* - match part of the committer name
- *deep* - check within subfolders of non-repos
- *showcommand* - show the 'git log' command used
- *folder* - the parent folder holding your projects
Example:
```sh
CommitList -days=5 -author=cartlidge --deep --showcommand ~/Source
```
You'll get a simple status message for each subfolder which contains a `.git` repository.
Submodules are not listed, though if you specify `--deep` then any folder which
*isn't in itself a git repo* will have it's subfolders scanned (recursing downwards).
In effect it will spider down your folder tree, stopping each branch when it reaches a repo.
```
/Source # not a repo; scan subfolders
/Core # not a repo; scan subfolders
/MyApp # repo; list matching commits, ignore subfolders
/MySite # repo; list matching commits, ignore subfolders
/Go # not a repo; scan subfolders
/MyTool # repo; list matching commits, ignore subfolders
```
## Sample output
```
Since yesterday
Scanning /Users/kcartlidge/Documents/Source (deep)
app
ad144ce 24-Jul K Cartlidge Support NODE_ENV switching and uvu tests
ProjectOne
b5a19ec 16-Jul K Cartlidge Mention where to get the release builds
df98d1a 16-Jul K Cartlidge Support specifying max commit age in days
e3016bb 15-Jul K Cartlidge Add executables and update the readme
5ca0385 15-Jul K Cartlidge Add git log output parsing and display
cc0afda 15-Jul K Cartlidge Scan for subfolders of the provided folder
```
## Generating new builds
*For CommitList *developers* only.*
Update the `CHANGELOG.md` file and the version number in `Program.cs`.
Navigate to the top folder (the one containing this `README.md` file).
Now run the relevant script file from the two below, according to *your* platform.
Each will then create new builds for *all* the supported platforms.
### MacOS and Linux
```sh
cd
./make.sh
```
### Windows
```batch
cd
make.bat
```
When run from the top folder, the builds will automatically go into
the `builds` subfolders as they are generated.