This commit introduces a new `changelog` command to the `borg` CLI. This command generates a human-readable changelog between two archive versions, addressing a key user request for tracking changes over time. Key features of the `changelog` command include: - **File Comparison:** Detects added, modified, and removed files between two archives. - **Diff Statistics:** Calculates line-level insertions and deletions for modified files. - **Multiple Output Formats:** Supports plain text, Markdown, and JSON output, controlled by a `--format` flag. - **Remote Source Comparison:** Allows comparing a local archive against a remote GitHub repository using the `--source` flag (e.g., `--source github:org/repo`). - **Commit Message Extraction:** When comparing archives that contain a `.git` repository, the command extracts and displays the relevant commit messages for each modified file, providing valuable context for the changes. To support this functionality, this commit also includes: - A new `pkg/changelog` package containing the core logic for comparing archives and generating change reports. - A bugfix in `pkg/datanode` to ensure `fs.WalkDir` functions correctly on the root of a `DataNode`, which was necessary for iterating through archive contents. - A modification to the `pkg/vcs` Git cloner to include the `.git` directory in the created `DataNode`, enabling commit history analysis. Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
72 lines
3 KiB
Modula-2
72 lines
3 KiB
Modula-2
module github.com/Snider/Borg
|
|
|
|
go 1.25.0
|
|
|
|
require (
|
|
github.com/Snider/Enchantrix v0.0.2
|
|
github.com/fatih/color v1.18.0
|
|
github.com/go-git/go-git/v5 v5.16.4
|
|
github.com/google/go-github/v39 v39.2.0
|
|
github.com/klauspost/compress v1.18.2
|
|
github.com/mattn/go-isatty v0.0.20
|
|
github.com/schollz/progressbar/v3 v3.18.0
|
|
github.com/spf13/cobra v1.10.1
|
|
github.com/ulikunitz/xz v0.5.15
|
|
github.com/wailsapp/wails/v2 v2.11.0
|
|
golang.org/x/mod v0.30.0
|
|
golang.org/x/net v0.47.0
|
|
golang.org/x/oauth2 v0.33.0
|
|
)
|
|
|
|
require (
|
|
dario.cat/mergo v1.0.0 // indirect
|
|
github.com/Microsoft/go-winio v0.6.2 // indirect
|
|
github.com/ProtonMail/go-crypto v1.3.0 // indirect
|
|
github.com/bep/debounce v1.2.1 // indirect
|
|
github.com/cloudflare/circl v1.6.1 // indirect
|
|
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/emirpasic/gods v1.18.1 // indirect
|
|
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
|
|
github.com/go-git/go-billy/v5 v5.6.2 // indirect
|
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
|
github.com/godbus/dbus/v5 v5.1.0 // indirect
|
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
|
github.com/google/go-querystring v1.1.0 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/gorilla/websocket v1.5.3 // indirect
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
|
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect
|
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
|
github.com/labstack/echo/v4 v4.13.3 // indirect
|
|
github.com/labstack/gommon v0.4.2 // indirect
|
|
github.com/leaanthony/go-ansi-parser v1.6.1 // indirect
|
|
github.com/leaanthony/gosod v1.0.4 // indirect
|
|
github.com/leaanthony/slicer v1.6.0 // indirect
|
|
github.com/leaanthony/u v1.1.1 // indirect
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
|
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
|
|
github.com/pjbgf/sha1cd v0.3.2 // indirect
|
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/rivo/uniseg v0.4.7 // indirect
|
|
github.com/samber/lo v1.49.1 // indirect
|
|
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
|
|
github.com/skeema/knownhosts v1.3.1 // indirect
|
|
github.com/spf13/pflag v1.0.9 // indirect
|
|
github.com/stretchr/testify v1.11.1 // indirect
|
|
github.com/tkrajina/go-reflector v0.5.8 // indirect
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
github.com/valyala/fasttemplate v1.2.2 // indirect
|
|
github.com/wailsapp/go-webview2 v1.0.22 // indirect
|
|
github.com/wailsapp/mimetype v1.4.1 // indirect
|
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
|
golang.org/x/crypto v0.44.0 // indirect
|
|
golang.org/x/sys v0.38.0 // indirect
|
|
golang.org/x/term v0.37.0 // indirect
|
|
golang.org/x/text v0.31.0 // indirect
|
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|