gitsh

An interactive shell for git

BSD-3-CLAUSE License

Stars
2K

Bot releases are hidden (Show)

gitsh - gitsh v0.14 Latest Release

Published by georgebrock over 5 years ago

Dependencies

This version of gitsh requires:

  • Ruby v2.3 or greater (support for Ruby 2.0, 2.1, and 2.2 has been dropped).

New features

  • Support for gitsh-specific Readline configuration, using a $if gitsh … $endif block in your .inputrc.
  • Expand aliases in the background when tab completing, so that tab completion rules apply to aliases without any custom configuration.
  • Support for custom tab completion rules that use branch names and tag names, via the $branch and $tag variables.
  • Default tab completion rules updated to use branch and tag names where appropriate, e.g. branch -D <tab> will now complete branch names, but not other revisions like tags, etc.
  • Support for fallback tab completion rules that only apply to commands that don't have a more specific configuration, via the fallback:: modifier.
  • Default tab completion rules updated with fallback rules that roughly mirror gitsh's behaviour in version 0.12 and earlier (tab complete paths, revisions, and remotes as arguments to any command without specific configuration).
  • Report errors in tab completion config files on start up, instead of crashing when the user first tries to use tab completion.
  • Friendly error messages for common tab completion config file problems, including the file where the problem occurred, and the line and column numbers.

Bug fixes

  • Tab complete multiple revisions for git rebase, e.g. rebase master <tab> will complete revision names.
  • No longer crash when there's a tab completion configuration file with no rules.
  • No longer allow invalid tab completion configurations that would cause a crash, e.g. $opt in the definition of an option.
gitsh - gitsh v0.13

Published by georgebrock almost 6 years ago

New features

  • Expand ~ in the gitsh.historyFile setting (Cedric Staniewski)
  • Support %g and %G in the prompt format to show the current Git command (Ben Knoble)
  • Complete tab completion rewrite, replacing naive options with a context-aware system (George Brocklehurst & Eric Collins)
    • Tab complete the names of gitsh and git-config variables
    • Tab complete command options (e.g. push --force-<tab> expands to push --force-with-lease)
    • Tab complete more than one command on the same line (e.g. commit && pus --force-<tab>)
    • Define custom tab completion options for aliases and custom commands in a ~/.gitsh_completions file
  • Tab completion of commands is now compatible with Git 2.20 (George Brocklehurst)

Internals

  • Fix various Ruby warnings, and set up tools to prevent us introducing more (Teo Ljungberg)
gitsh - gitsh v0.12

Published by georgebrock over 7 years ago

New features

  • Split commands over multiple lines, by escaping line breaks, or using line breaks after logical operators and within parentheses (George Brocklehurst)
  • Split arguments over multiple lines, by using line breaks inside quoted strings (George Brocklehurst)
  • Group commands with parentheses to override default operator precedence, e.g. (foo || bar) && baz (George Brocklehurst)
  • Use :cd with no arguments to change to the repository's root directory (George Brocklehurst)
  • New $_root magic variable, which evaluates to the repository's root directory (George Brocklehurst)
  • Use Git options directly, e.g. you can now type --version to see the version of Git you're using (George Brocklehurst)

Bug fixes

  • More robust subshell parsing, e.g. $(:echo ")") now works as expected (George Brocklehurst & Adam Sharp)
  • Catch parse errors in subshells earlier (George Brocklehurst & Adam Sharp)
  • Exit with a non-zero status when a non interactive session encounters a parse error (George Brocklehurst)

Internals

  • Complete parser re-write, replacing a Parslet PEG with an RLTK CFG (George Brocklehurst)
gitsh - gitsh v0.11.2

Published by georgebrock over 7 years ago

This release addresses issues with the install process that were introduced in v0.11, and by recent Homebrew changes.

Bug fixes

  • Support alternative names for GNU Readline, e.g. ereadline on OpenBSD (Mike Burns & George Brocklehurst)
  • Automatically discover Ruby binaries named ruby22, ruby23, and ruby24, e.g. for OpenBSD (George Brocklehurst)
  • Generate the list of files under lib/gitsh that need to be installed in a more portable way (Mike Burns & George Brocklehurst)
  • Support setting an explicit architecture for the Ruby C extension, which is useful for building against a macOS universal Ruby with a non-universal Readline (George Brocklehurst)
  • Update Homebrew formula to work with Homebrew's updated Readline formula (George Brocklehurst)
gitsh - gitsh v0.11.1

Published by georgebrock almost 8 years ago

This release addresses issues with the install process that were introduced in v0.11.

Bug fixes

  • Honour DESTDIR during make install (Tommaso Sardelli)
gitsh - gitsh v0.11

Published by georgebrock almost 8 years ago

Dependencies

This version of gitsh requires:

  • Ruby v2.0 or greater (1.9.3 was previously supported)
  • GNU Readline

New features

  • Execute shell commands via /bin/sh to gain support for shell features like globbing, e.g. !ls * will now behave as expected (George Brocklehurst & Mike Burns)
  • Don't create duplicate history entries when running the same command multiple times (Justin Moore & Calle Erlandsson)
  • Output a useful error message if gitsh can't find Git (Calle Erlandsson)
  • Abbreviate the user's home directory path as ~ when it's shown in the prompt (Scott Stevenson)
  • Use a custom C extension to integrate with GNU Readline. This avoids many tab completion issues libedit users have experienced, and paves the way for building more advanced tab completion schemes (George Brocklehurst)
  • Robust support for quoting and escaping, and for tab completing quoted and escaped arguments (George Brocklehurst)
  • Significant speed improvements when generating the prompt (Calle Erlandsson)

Bug fixes

  • A trailing semicolon on a command no longer causes a parse error (George Brocklehurst)
gitsh - gitsh v0.10

Published by georgebrock about 9 years ago

New features

  • :source file command to run the Git and gitsh commands in the given file (George Brocklehurst, Craig Kochis)
  • Subshells can be used to capture the output of a command, e.g. :set directory $(!pwd) (George Brocklehurst)
  • A ~/.gitshrc file is run at the start of each interactive session, if it exists (George Brocklehurst)

Bug fixes

  • Handle terminal resizes more reliable, especially those that occur while another program is running in gitsh, e.g. when a pager is running to display the output of git log (George Brocklehurst)
  • Output an error message instead of crashing when a magic variable has no value. (George Brocklehurst)
  • Exit with an error status when an unexpected exception crashes gitsh. (George Brocklehurst)

Maintenance

  • Upgrade testing tools to use the latest version of RSpec, and RSpec mocks instead of Mocha (Teo Ljungberg)
gitsh - gitsh v0.9

Published by georgebrock almost 10 years ago

New features

  • Ignore git at the start of commands when git's help.autocorrect setting is enabled (Rob Warner, George Brocklehurst)
  • Customise prompt colours by setting git config variables (George Brocklehurst)
  • Support Ruby binaries named ruby21, for improved compatibility with BSD (Mike Burns)
  • Improve install documentation (@lf-)
  • Support shortened branch names in the prompt format using %B (Saron Yitbarek, George Brocklehurst)

Behaviour changes

  • Consider unset variables to be an error, e.g. :echo $foo will fail with a helpful error message if $foo isn't set (George Brocklehurst, Harry Schwartz)
  • Switch the default prompt format from the full branch name to the short branch name (Saron Yitbarek, George Brocklehurst)

Bug fixes

  • Don't evaluate arguments until they are needs, which fixes commands like :set foo 1 && :echo $foo (George Brocklehurst)
gitsh - gitsh v0.8

Published by georgebrock about 10 years ago

New features

  • Pass a script as a command line argument, or use gitsh as a sh-bang line (George Brocklehurst)
  • Pipe commands to the standard input (George Brocklehurst)
  • Magic variables: $_prior, $_rebase_base and $_merge_base (George Brocklehurst, Mike Burns)
  • Exit gitsh using :q (Jeff Mueller)
  • Comments at the end of other commands, e.g. add . # add all files (George Brocklehurst)
  • :help command to get help on internal commands (Sarah Mei, George Brocklehurst)

Bug fixes

  • Fix various bugs associated with window resizing (George Brocklehurst)
  • Improvements to the structure of the test suite (Sarah Mei, George Brocklehurst)
gitsh - gitsh v0.7

Published by georgebrock over 10 years ago

New features

  • Always use an alternative Git binary like gh with the new gitsh.gitCommand setting (Calle Erlandsson, Magan Adam)
  • Commands that begin with # are treated as comments and ignored (George Brocklehurst, Anatoli Makarevich)
  • --version outputs which line editing library is being used: GNU Readline or libedit (Calle Erlandsson)
  • Some internal restructuring and tidying up (George Brocklehurst, Magan Adam)
  • A new gitsh binary written in C instead of Ruby, to prepare for gitsh scripts in a future release (George Brocklehurst, Calle Erlandsson)
  • Ignore unset variables instead of treating them as empty string, to mimic the behaviour of sh(1) (George Brocklehurst)

Bug fixes

  • The test suite runs under Ruby 2.1 (Calle Erlandsson)
  • Fixed missing directory error for first-time packagers (Gordon Fontenot)
  • Fix empty string arguments being passed to Git commands as if they were escaped (George Brocklehurst)
  • Lines that only contain spaces now execute the default command instead of causing a parse error (Alex Sunderland)
  • The process name is now gitsh instead of ruby in more contexts (George Brocklehurst, Calle Erlandsson)
  • Executing relative shell commands with ! no longer causes a parse error (Magan Adam, Calle Erlandsson)

Documentation

  • Added an installation guide to the tarball distribution, to help Linux users avoid common problems (George Brocklehurst)
gitsh - gitsh v0.6

Published by georgebrock over 10 years ago

New features

  • :echo command (Mike Burns, Calle Erlandsson)
  • Developers can run the test suite using the autotools make check target (Mike Burns)
  • Tab complete remote names (Alex Sunderland)
  • Various small parser and documentation improvements (Alex Sunderland)

Bug fixes

  • ctrl-c while running a Git command with a pager no longer leaves gitsh in an ambiguous state (George Brocklehurst)
  • Tab completion for Git aliases containing newline characters (Yasuharu Ozaki)
  • Tests will run regardless of the contents of the current user's home directory (Luís Ferreira, Alex Sunderland, George Brocklehurst)
  • Fixed Linux upgrade and install problems caused by a duplicate version.rb file (George Brocklehurst)
gitsh - gitsh v0.5

Published by georgebrock over 10 years ago

New features

  • Issue shell commands, prefixed with a ! (Magan Adam, George Brocklehurst)
  • Chain commands together with &&, ||, and ; (Blaine Schmeisser)
  • Support Ruby 1.9.3 (George Brocklehurst)
  • Set the program name to gitsh for programs like ps (Alex Sunderland)

Bug fixes

  • Correctly display Git HEADs containing a slash in the prompt (Blaine
    Schmeisser)
  • Don't display the welcome message again when the user presses ctrl-c (George
    Brocklehurst)
  • Don't add blank lines to the history (Magan Adam, Sean Griffin)
  • Man page formatting bugs (Adrian Lang)
  • Set correct permissions on installed version.rb file (Adrian Lang)
  • Tab complete Git commands provided by a custom Git binary like gh or hub
    (George Brocklehurst)
  • Don't crash when given an empty string as an argument (Alex Sunderland)
  • Autocomplete Git HEADs that contain a dot (George Brocklehurst, Alex Topalov)
  • Parse uppercase Git commands (Alex Sunderland)
gitsh - gitsh v0.1

Published by georgebrock over 10 years ago

New features

  • Execute Git commands without typing git (George Brocklehurst, Mike Burns)
  • Vary the prompt based on the repository's status (George Brocklehurst)
  • Tab completion (Mike Burns)
  • Manual page (Mike Burns)
  • Treat an empty command as status (George Brocklehurst)
  • Autotools-based packaging (George Brocklehurst)
gitsh - gitsh v0.3

Published by georgebrock over 10 years ago

New features

  • Tab completion for aliases (George Brocklehurst)
  • :set command for setting environment variables (George Brocklehurst)
  • :exit command to close gitsh, replaces exit (George Brocklehurst)
  • :cd command to change directory (George Brocklehurst)
  • Read git config variables with a $ prefix, e.g. $user.name (George
    Brocklehurst)
  • Custom prompt formats, via the gitsh.prompt setting (George Brocklehurst)
  • Persistent history between sessions (George Brocklehurst)

Bug fixes

  • Don't exit when the user presses ctrl-c (George Brocklehurst)
gitsh - gitsh v0.2

Published by georgebrock over 10 years ago

New features

  • --version command line option (George Brocklehurst)
  • --git command line option (George Brocklehurst)
  • --help command line option (George Brocklehurst)
  • PKGBUILD for Arch Linux (Pat Brisbin)

Bug fixes

  • Don't crash when the user presses ctrl-c (George Brocklehurst)
gitsh - gitsh v0.4

Published by georgebrock over 10 years ago

New features

  • Add a gitsh.defaultCommand setting to override the default command (George
    Brocklehurst)
  • Display a greeting when gitsh starts (George Brocklehurst)

Bug fixes

  • Failure to find a compatible Ruby when installing via Homebrew on a version of
    OS X with Ruby 1.8.7 (George Brocklehurst)
Package Rankings
Top 6.72% on Proxy.golang.org
Badges
Extracted from project README
Build Status Code Climate Reviewed by Hound