Conversation
There was a problem hiding this comment.
Pull request overview
Updates the EventDbTool CLI to treat provider data as coming from a “provider source” (local machine, .db, exported .evtx + sibling LocaleMetaData/*.MTA, or a folder containing these), enabling workflows that rely on MTA-only metadata rather than local registry/DLL resolution.
Changes:
- Replaces
showlocal/showdatabasewith a unifiedshowcommand that can read from.db,.evtx+LocaleMetaData, or folders. - Adds
ProviderSourceandMtaProviderSourcehelpers to discover/load providers from.db/.evtx/folders. - Extends
create,merge, anddiffto accept these broader provider sources.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/EventLogExpert.EventDbTool/ShowLocalCommand.cs | Removed legacy local-only “show” command in favor of unified source handling. |
| src/EventLogExpert.EventDbTool/ShowDatabaseCommand.cs | Removed legacy DB-only “show” command in favor of unified source handling. |
| src/EventLogExpert.EventDbTool/ShowCommand.cs | New unified show command supporting local, .db, .evtx+MTA, and folders. |
| src/EventLogExpert.EventDbTool/ProviderSource.cs | New abstraction for enumerating/loading provider details from .db/.evtx/folders. |
| src/EventLogExpert.EventDbTool/MtaProviderSource.cs | New logic to discover provider names from .evtx and resolve via sibling LocaleMetaData/*.MTA only. |
| src/EventLogExpert.EventDbTool/Program.cs | Switches root command registration to the new unified show command. |
| src/EventLogExpert.EventDbTool/MergeDatabaseCommand.cs | Allows merging from any provider source; adds case-insensitive match/removal behavior. |
| src/EventLogExpert.EventDbTool/DiffDatabaseCommand.cs | Allows diffing two provider sources and generating a .db containing providers only in the second source. |
| src/EventLogExpert.EventDbTool/DbToolCommand.cs | Adds LoadLocalProviders helper and updates output to include Parameters count. |
| src/EventLogExpert.EventDbTool/CreateDatabaseCommand.cs | Adds optional source argument and expands skip/filter logic to support non-DB inputs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ceebcf0 to
a39b1ce
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
9b2c7dd to
02d6baa
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
02d6baa to
a42f8c2
Compare
a42f8c2 to
e4c48ff
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
e4c48ff to
c92ac17
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
d36f50c to
7470e68
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
src/EventLogExpert.EventDbTool/Program.cs:26
- The CLI subcommands
showlocalandshowdatabasehave been removed and replaced withshow. This is a breaking change for any existing scripts/automation that call the old commands. Consider keepingshowlocal/showdatabaseas backward-compatible aliases (potentially hidden) that forward toshow, or document the breaking change prominently in help/release notes.
RootCommand rootCommand = new("Tool used to create and modify databases for use with EventLogExpert");
rootCommand.Subcommands.Add(ShowCommand.GetCommand());
rootCommand.Subcommands.Add(CreateDatabaseCommand.GetCommand());
rootCommand.Subcommands.Add(MergeDatabaseCommand.GetCommand());
rootCommand.Subcommands.Add(DiffDatabaseCommand.GetCommand());
rootCommand.Subcommands.Add(UpgradeDatabaseCommand.GetCommand());
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
7470e68 to
538ae39
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
538ae39 to
be9681d
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
be9681d to
5c0eacc
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
5c0eacc to
3ed3c05
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
3ed3c05 to
a6bf37e
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a6bf37e to
0622789
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
0622789 to
a80dc86
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| var sourceProviders = ProviderSource.LoadProviders(source, Logger).ToList(); | ||
|
|
There was a problem hiding this comment.
MergeDatabase eagerly materializes all ProviderDetails from the source (ProviderSource.LoadProviders(...).ToList()) before checking which provider names already exist in the target. When --overwrite is not set and the overlap is large (especially for .evtx+MTA sources where resolving a provider is expensive), this does unnecessary work and can significantly slow the command.
Consider loading only the source provider names first (ProviderSource.LoadProviderNames) to compute the overlap, then (when overwriteProviders is false) call ProviderSource.LoadProviders again with skipProviderNames set to the target overlap so skipped providers are never resolved.
| @@ -19,8 +19,7 @@ private static async Task<int> Main(string[] args) | |||
| { | |||
| RootCommand rootCommand = new("Tool used to create and modify databases for use with EventLogExpert"); | |||
There was a problem hiding this comment.
This change removes the showlocal and showdatabase subcommands from the CLI and replaces them with a single show command. If users have scripts or docs referencing the old subcommands, this is a breaking change.
Consider keeping showlocal/showdatabase as deprecated aliases that forward to show (with/without a source argument), or at least add explicit migration guidance in the command descriptions/help output.
| RootCommand rootCommand = new("Tool used to create and modify databases for use with EventLogExpert"); | |
| RootCommand rootCommand = new( | |
| "Tool used to create and modify databases for use with EventLogExpert. " + | |
| "Migration note: the previous 'showlocal' and 'showdatabase' commands have been replaced by 'show'. " + | |
| "Update any scripts or documentation that still reference the old command names."); |
No description provided.