All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
As an application (not a library!), backwards compatibility is defined as:
- New versions of the application should keep working with configuration created for and by older versions.
- New versions of the application should keep working in environments where the old version used to work.
- New versions should maintain the command line interface of older versions.
However, the output of the application is designed for humans, not machines, and is thus exempt from these backwards compatibility promises. File an issue if you have a use case for machine readable output.
- #170: A new
completions
subcommand that generates shell completions (thanks @shanesveller).
- Glitchy output where progress bars would sometimes overwrite normal text.
- #180:
git nomad ls
now properly displays branches with/
in their name (thanks @shanesveller).
- Upgraded
rustix
dependency to mitigate GHSA-c827-hfw6-qwvm. Cursory review indicates thatgit-nomad
only uses this dependency viatempfile
, which is only used by testing. Still, users are advised to upgrade out of an abundance of caution.
git
invocations will now read system and global configuration, so things like credential helpers will will be respected in the underlyinggit push
thatgit nomad sync
makes. Fixes #125.
ls
has gained a number of new options:--fetch
to fetch refs from the<remote>
before listing.--print
to choose how output should be printed.--head
and--branch
to filter the output to specific branches.--print-self
for current host refs to be printed.
purge
now takes the<remote>
to delete refs from.
ls
no longer implicitly prints refs for the current host (see--print-self
).<remote>
is now a global option instead of a positional argument. It can be specified via-R
,--remote
, or theGIT_NOMAD_REMOTE
environment variable. It influences the git remote thatls
,sync
,purge
operate on.--host
is now a global option instead of subcommand specific.- The
--silent
option has been renamed to--quiet
. - Update to clap v4 for the command line interface.
- Cosmetic tweaks to how command failures are reported.
- Support for multiple hosts in the
purge
subcommand. Do it one at a time with the--host
global option or via--all
.
git-nomad
is no longer considered a prototype and is approaching its (hopefully final) 1.0 release.
- Update to the 2021 edition of Rust.
- Update to clap v3 for the command line interface.
- Help messages are no longer colorized, matching the lack of color throughout the rest of the implementation.
- Assorted minor version updates to various dependencies.
- Adjust help message to only suggest
-vv
for max verbosity.
- An internal rewrite of the implementation to prevent entire categories of bugs like #1, #2, and #3 from sneaking in again.
- End-to-end tests that validate the entire workflow.
- Performance and memory optimizations.
- #4: The
prune
subcommand has been renamed topurge
. - #5: The
init
subcommand no longer exists. Other subcommands likesync
andpurge
take new options and read from the git configuration directly. Starting to usegit-nomad
now only requires one command (sync
) instead of two (init
thensync
).
- #2: A severe bug related to purging refs from other hosts, i.e. after you wish to stop using git-nomad.
- Patch release to test the automated release workflow.
- Updates some minor dependencies.
- Patch release to test the automated release workflow.
- Skip running pre-push hooks for git-nomad operations. This allows pushing work-in-progress branches with lint or compile errors (if the repo has pre-push hooks that check that).
- Allow non-git based builds to work again, with several fallbacks to compute the
--version
.
- The
--version
information now leveragesgit describe
to properly capture the precise revision the binary was built from.
- #1: Clean up deleted branches from other hosts.
- Support for a
--version
flag that reports the crate version.
An initial release with a reasonable complete implementation.
init
to configure user and host names to usels
to display all nomad managed refsprune
to remove local and remote nomad managed refssync
to reconcile local and remote state