- [IMPROVED]
grit open
(akabrowse
) now opens the GitHub tree view for the current branch, tag or hash, instead of always showing the default branch.
- The
default-branch
configuration setting now defaults tomain
- [FIX] Fix bug with
grit index scan
that prevented any on-disk clones from being recognized
- [NEW] Introduce ARM 64 builds for Darwin and Linux, adding Apple Silicon M1 support
- [IMPROVED] Automatically populate version string during build process
- [FIX] Fix issue that prevented cloning empty repositories
- [FIX] Fix issue where the default branch was added to
.git/config
twice - [BC] Remove
source
sub-command - [BC] Remove
--golang
flag from theclone
sub-command - [BC] Remove
--golang
flag from themv
sub-command - [BC] Remove
--golang
flag from theset-url
sub-command
- [FIX] Fix "invalid capabilities" error when cloning from GitHub
- [IMPROVED] Interactive clone directory prompts now order the options by their distance from the current working directory
- [IMPROVED] Interactive clone directory prompts now indicate if one of the options is the current working directory
- [IMPROVED] Add
open
as an alias for thebrowse
command - [FIX] Naive support for multiple
$GOPATH
directories (grit always used the first one in the list)
- [FIX] Fix CLI output bug introduced in 0.6.7
- [NEW] Added
slug
command, which prints the slug for the current clone directory - [NEW] Added
browse
command, which opens the webpage for the current repo (assumes GitHub / GHE) - [IMPROVED] Use
promptui
for interactive CLI elements
- [IMPROVED] Only check for updates when STDOUT is a TTY
- [IMPROVED] Don't allow
self-update
to replace binaries installed by Homebrew
- [NEW] Added
ls
command, which lists all clones in the index - [FIX] Fix issue that prevented cloning of empty repositories
- [FIX] Fix issue that prevented Grit from automatically checking for new versions
- [FIX] Allow proper cloning of symlinks
- [IMPROVED] Show progress when cloning
- [NEW] Added
set-url
command, which changes the remote URL then moves the clone accordingly - [IMPROVED] The
mv
command now includes remote information when prompting to choose a directory
This release introduces another (and hopefully the final) change to the default
location of the configuration and index files. The configuration file is now
at ~/.config/grit.toml
, following a convention adopted by several other Git
utilities. The index is now stored in the clone root, at ~/grit/index.v2
.
This means that the ~/.grit
directory is no longer used.
If you are using the default locations, you can move your files into the correct locations by running:
mkdir -p ~/.config
mv ~/.grit/config.toml ~/.config/grit.toml
mv ~/.grit/index.v2 ~/grit/index.v2
rmdir ~/.grit
- [BC] The default config location is now
~/.config/grit.toml
- [BC] The default index location is now
~/grit/index.v2
- [FIX] Allow cloning of empty repositories
- [FIX] The
index scan
command now accepts relative paths - [IMPROVED] The
rm
command now warns when deleting a clone with uncommitted changes - [IMPROVED] Allow scanning of non-existent paths
- [IMPROVED] Print more information when probing sources for repositories
- [FIX] Fix
self-update
when Grit is invoked via$PATH
- [BC] The
rm
command no longer accepts a slug argument, instead it takes an optional path - [NEW] Added background checks for updates once every 24 hours
- [NEW] Added
--force
argument torm
to skip confirmation - [NEW] Added
mv
command, which moves an existing clone into the standard clone location - [NEW] Bundled
grit.bash
with the executable, useeval "$(grit shell-integration)"
in.bash_profile
- [IMPROVED] When
rm
is invoked with no arguments it changes the current directory to the parent on success
- [NEW] Added
rm
command, which removes a repository from the filesystem and the index - [IMPROVED]
cd
now prints an error when there are no matching directories - [IMPROVED]
clone
now prints an error when there are no matching sources
This release introduces a change to the format of the Grit index. Existing data
in the existing index file will be ignored. The default location for the index
store has also been changed from ~/.grit/index.db
to ~/.grit/index.v2
. If you
are not using the default location for the index store, simply delete the old
data by running grit index clear
and rebuild the index with grit index scan
.
- [BC] URL template syntax has changed from
{{.Slug}}
to{{slug}}
- [BC] Removed
index rebuild
command. - [BC] Renamed
index keys
back toindex ls
- [BC] Removed
config
andindex show
commands - [FIX] Usage information is no longer suppressed when running from
grit.bash
- [FIX] Auto-completion of slugs no longer repeats for non-slug parameters
- [NEW] Added
index scan
command, which scans the index paths and adds the located repositories to the index - [NEW] Added
index prune
command, which removes non-existent clone directories from the index - [NEW] Added
index clear
command, which erases the entire index - [NEW] Added environment variable substitution in URL templates
- [IMPROVED] Add slug auto-completion to
clone
command - [IMPROVED] Added the ability to index from arbitrary directories with
index scan
- [IMPROVED] Git submodules are excluded from the index
- [IMPROVED] Grit now outputs shell commands to a separate file, see
grit.bash
for details - [IMPROVED]
source ls
command now accepts an optional slug argument for previewing clone URLs
- [BC] Removed
selfupdate
alias forself-update
command - [FIX] Backup files are now removed after successful updates
- [IMPROVED] Better messages about the versions installed by
self-update
- [BC] Removed
index.root
configuration directive - [NEW] Allow multiple index paths via
index.paths
configuration directive - [NEW] Added
self-update
command - [FIX] Conditionally declare
grit
function ingrit.bash
- [FIX] New clones now setup remote tracking of the default branch
- [FIX] Fix panic when config file does not exist
- [FIX] Fix issue where $GOPATH would not be index when outside the index root
- [BC] Renamed
index select
command tocd
- [BC] Renamed
clone
command's--go
flag to--golang
and added shortcut-g
- [BC] Removed
clone.order
configuration directive - [BC] Renamed
clone.providers
configuration directive toclone.sources
- [BC] URL templates now uses Go text templates (use
{{.Slug}}
instead of*
) - [BC] Renamed
config show
command toconfig
and marked it deprecated - [BC] Rename
index list
command toindex keys
- [NEW] The
clone
command now checks all sources and prompts the user to choose if there are multiple matching repositories - [NEW] Added
--source
flag toclone
, which specifies a source to use by names - [NEW] Added
--target
flag toclone
, which specifies target directory for the clone - [NEW] Added
source probe
command, which lists the names of sources that have a given repo - [NEW] Added
source ls
command, which lists the configured sources and their URL templates - [NEW] Added
etc/grit.bash
file, which provides simple shell integration for directory changes and auto-completion - [IMPROVED]
clone
no longer fails if the repository has already been cloned
- Initial release