🚧 Add export feature and refined exclusion info
This commit is contained in:
@@ -14,7 +14,7 @@ See `functional specification.md` for the full specification.
|
||||
|
||||
- Run-once execution, designed for Windows Task Scheduler / cron / systemd timers
|
||||
- Change detection via `git status --porcelain -z` (NUL-safe, UTF-8)
|
||||
- Configurable include/exclude file filters (globs)
|
||||
- Configurable include/exclude file filters (globs), with every excluded file and its matching rule logged at DEBUG level
|
||||
- Security validation with forbidden patterns (abort by default)
|
||||
- Pluggable author resolvers with priority chain and confidence levels
|
||||
- Per-file attribution recorded in the commit message
|
||||
@@ -24,6 +24,7 @@ See `functional specification.md` for the full specification.
|
||||
- Repository-level lock with stale-lock detection (stored outside the repo)
|
||||
- Rotating file logs plus console logging
|
||||
- Dry-run mode, exit codes suitable for external monitoring
|
||||
- `export` command: the collected history as analysis-ready CSV/JSONL (one row per file change, with author, timestamps and Tracker-Run identifiers)
|
||||
- Cross-platform: Windows / Linux / macOS
|
||||
|
||||
## Installation
|
||||
@@ -42,6 +43,7 @@ git-auto-tracker run [--dry-run] # collect changes and commit
|
||||
git-auto-tracker status # show detected changes without committing
|
||||
git-auto-tracker validate # validate configuration / repository / resolvers
|
||||
git-auto-tracker config # print effective configuration
|
||||
git-auto-tracker export -o out.csv # export the commit history for analysis
|
||||
```
|
||||
|
||||
Global options:
|
||||
@@ -52,6 +54,25 @@ Global options:
|
||||
--version Print version and exit
|
||||
```
|
||||
|
||||
### Analyzing the audit trail
|
||||
|
||||
`export` turns the tracker commits of the configured repository into a
|
||||
flat table — one row per file change, with the collection time, run
|
||||
identifier, host, change letter, path, author and last-modified time:
|
||||
|
||||
```bash
|
||||
git-auto-tracker export -o history.csv # CSV (default format)
|
||||
git-auto-tracker export -o history.jsonl # JSON Lines
|
||||
git-auto-tracker export -o history.csv --since 2026-09-01
|
||||
```
|
||||
|
||||
The rows load directly into pandas/Excel for analysis (who changes most,
|
||||
which subtrees churn, change volume per day, everything ever deleted).
|
||||
Commits written with a different `commit.file_separator` than the current
|
||||
configuration are skipped with a warning, since their fields cannot be
|
||||
split reliably. Non-tracker commits (e.g. the repository's initial
|
||||
import) are ignored automatically.
|
||||
|
||||
## Configuration
|
||||
|
||||
See [`config/example.yaml`](config/example.yaml). Configuration is YAML;
|
||||
|
||||
Reference in New Issue
Block a user