-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #19 from corytodd/exclude-repos
add exclude specific repos feature
- Loading branch information
Showing
12 changed files
with
137 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,34 +6,45 @@ A multi-repo Git query tool | |
|
||
## Purpose | ||
|
||
I spend a fair amount of time tracking down the what and when of my daily activities. Usually this searching spans many (10+) repositories which means the task is boring and tedious. Walrus | ||
tool aims to automate the discovery of git commits based on date, author, and other criteria. | ||
I spend a fair amount of time tracking down the what and when of my daily activities. Usually this searching spans many (10+) repositories which means the task is boring and tedious. Walrus | ||
tool aims to automate the discovery of git commits based on date, author, and other criteria. | ||
|
||
## Goals | ||
|
||
We don't want to reinvent libgit2sharp, we just want a simple query interface specific to commit messages. We don't care about diffs, code content, or even the change sets. | ||
For this reason, Gitbase was found to be entirely overkill even though it is pretty rad. It is a fantastic tool and I do make use of it but managing it is kind of a pain. For this reason, the | ||
For this reason, Gitbase was found to be entirely overkill even though it is pretty rad. It is a fantastic tool and I do make use of it but managing it is kind of a pain. For this reason, the | ||
overarching goal of this project is simplicity with the ability to opt-in to complexity when needed. | ||
|
||
## Getting Started | ||
|
||
This utility should be used as a dotnet tool. See `tools/install_as_tool.ps1` for how to build and install Walrus on your system. | ||
|
||
``` | ||
# Windows | ||
.\tools\install_as_tool.ps1 | ||
# Not Windows | ||
bash tools/install_as_tool.ps1 | ||
``` | ||
|
||
To query multiple roots or query from any location, you will need to setup a simple JSON config file. This can be specified as an env `WALRUS_CONFIG_FILE` or a file | ||
named `walrus.json` placed in your current working directory. The contents should look something like this is: | ||
|
||
``` | ||
{ | ||
"DirectoryScanDepth": 3, | ||
"RepositoryRoots": [ | ||
"H:\\code", | ||
"H:\\code" | ||
], | ||
"AuthorAliases": { | ||
"illyum": [ | ||
"[email protected]", | ||
"[email protected]" | ||
] | ||
} | ||
"illyum": [ | ||
"[email protected]", | ||
"[email protected]" | ||
] | ||
}, | ||
"IgnorePaths": [ | ||
"H:\\code\\llvm" | ||
] | ||
} | ||
``` | ||
|
||
|
@@ -48,7 +59,7 @@ Show the active configuration | |
``` | ||
walrusc show config | ||
``` | ||
|
||
Print a list of all repositories | ||
``` | ||
walrusc show repos | ||
|
@@ -58,12 +69,12 @@ Use the default scan depth and search for repositories relative to your current | |
``` | ||
walrusc query --current-directory | ||
``` | ||
|
||
Count commits between March 2 and Jun 2 of 2021. This includes all authors on the currently checked out branch in each repository | ||
``` | ||
walrusc query --after "Mar 2 2021" --before "Jun 2 2021" | ||
``` | ||
|
||
|
||
Show all commits on all branches since last week (default if --after is not specified) and restrict to a single author | ||
``` | ||
|
@@ -122,8 +133,7 @@ walrusc query --author-alias illyum | |
|
||
- [x] Basic date/author query interface | ||
- [x] Unit tests | ||
- [x] Simple CLI | ||
- [x] Simple CLI | ||
- [x] Table style CLI output | ||
- [x] Create dotnet tool | ||
- [x] CI tests | ||
- [ ] Calendar style GUI | ||
- [x] CI tests |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,7 @@ namespace Walrus.Core.Tests | |
using System.Linq; | ||
using System.Collections.Generic; | ||
using Xunit; | ||
using Newtonsoft.Json; | ||
|
||
/// <summary> | ||
/// WalrusConfig tests | ||
|
@@ -49,5 +50,33 @@ public void EmptyPathRootTest() | |
// Execute | ||
Assert.Throws<WalrusConfigurationException>(() => config.ValidateOrThrow()); | ||
} | ||
|
||
/// <summary> | ||
/// Allow existing configurations to work without | ||
/// specifying a repo ignore list. | ||
/// </summary> | ||
[Fact] | ||
public void MissingIgnoredRepos() | ||
{ | ||
// Setup | ||
var json = """ | ||
{ | ||
"DirectoryScanDepth": 3, | ||
"RepositoryRoots": [ | ||
"H:\\code" | ||
], | ||
"AuthorAliases": { | ||
"illyum": [ | ||
"[email protected]", | ||
"[email protected]" | ||
] | ||
} | ||
} | ||
"""; | ||
|
||
// Execute | ||
var config = JsonConvert.DeserializeObject<WalrusConfig>(json); | ||
Assert.Empty(config.IgnoredRepos); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,9 +4,12 @@ | |
"H:\\code" | ||
], | ||
"AuthorAliases": { | ||
"illyum": [ | ||
"[email protected]", | ||
"[email protected]" | ||
] | ||
} | ||
"illyum": [ | ||
"[email protected]", | ||
"[email protected]" | ||
] | ||
}, | ||
"IgnorePaths": [ | ||
"H:\\code\\llvm" | ||
] | ||
} |