Grv Versions Save

GRV is a terminal interface for viewing git repositories

v0.3.2

5 years ago

Release notes

This minor release contains a couple of enhancements and fixes since v0.3.1:

  • Added fancy diff display format (based on diff-so-fancy) which is now the default. The diff format can be configured using the new diff-display config variable.
  • Set shell command working directory to be the root of the repository.
  • Fix bug causing mouse to be disabled when GRV is restored after being backgrounded.
  • Shell commands invoked with ! are run in the controlling terminal.
  • Escape or <C-c> cancels the prompt.
  • Added input-prompt-after-command config variable to configure whether the "Press any key to continue" message is displayed after executing an external command.
  • Added diff-view-file GRV variable which contains the currently selected file in the active DiffView.
  • Defaulted commit-limit variable to 100,000.
  • A search term can be provided as an argument to the help command.
  • Added sleep command which causes GRV to sleep for the provided number of seconds.
  • Removed built in cold theme.

v0.3.1

5 years ago

Release notes

This minor release contains a couple of fixes and enhancements since v0.3.0:

  • Fix confirm-checkout to also cover file checkout in the Status View.
  • Fix crash when diff view is empty.
  • Pop-up views can now handle mouse events.
  • Show diffs for unmerged files.
  • Added def command which enables user defined commands.
  • Added undef command to undefine user defined commands.
  • Added default-view config variable which allows a command to be specified to define the default view.
  • Added evalkeys command which can evaluate key strings sequences.

v0.3.0

5 years ago

Release notes

The main focus of this release was to implement a set of basic git operations common in many workflows. GRV can then be used not just to view repositories but to interact with them. Operations are performed by shelling out to the git command, which was done to speed up development.

The sections below detail the changes that were made in these areas since v0.2.0:

General

  • GRV Variables:
    • Added a variety of variables to GRV which hold values based on the selected rows of each view.
    • Variables can be embedded into shell commands.
    • Added Variable View which can be used to see the current values of all variables.
  • Shell Commands:
    • Shell commands can be run from within GRV.
    • Command input prompts can be embedded within shell commands.
    • Key bindings can now map key sequences directly to shell commands.
  • Display remotes in the History View.
  • Added commit-limit variable which can be used to limit the number of commits loaded.
  • Yes/No confirmation now appears as a pop-up window instead of a command prompt.
  • The Status View now displays a status message similar to the output of git status.
  • Start up time performance improvements:
    • Load git status asynchronously on startup.
    • Refs are displayed quicker by not loading the target commit for each tag.

Repository modification

  • Create branch and checkout - New branches can be created and checked out from selected refs and commits.
  • Checkout previous ref - The previously value of HEAD can be checked out.
  • Checkout files - Unstaged changes to modified files can be discarded.
  • Amend last commit - The last commit can be amended.
  • Create (annotated) tag - A (optionally annotated) tag can be created at a selected ref or commit.
  • Perform git pull - A git pull can be performed on a selected remote.
  • Push refs - Refs can be pushed to a remote.
  • Delete ref (and corresponding remote ref) - Refs can be deleted and optionally the remote ref they track.
  • Merge branch into current - A selected branch can be merged into the current branch.
  • Rebase branch onto current - A selected branch cab be rebased onto the current branch.

v0.2.0

5 years ago

Release notes

This release has two main focuses:

  • Update and improve existing views and functionality.
  • Begin work on repository modification to allow basic git operations to be performed from grv.

The sections below detail the changes that were made in these areas since v0.1.3:

General

  • Help view - The help view contains full documentation for grv. The values and options displayed are generated dynamically ensuring that the documentation is correct for the version of grv used. The online documentation is now auto-generated from grv by running make doc.
  • Commit graph - A commit graph can now be displayed in the commit view. Enable by setting the commit-graph config variable to true.
  • Actions popup - Some views now support a pop-up menu which displays actions available for the selected row.
  • Prompt history - Prompt history is now limited to 1000 entries by default. This can be changed by setting the prompt-history-size config variable.
  • Tab handling:
    • Close empty tab - Tabs are now closed when their last view is removed.
    • Switch back a tab on closure - Switch to the tab before when the active tab is closed.
    • Open tab next to current - New tabs are opened next to the active tab
  • New commands:
    • unmap - Allows key bindings to be removed.
    • git - Allows a non-interactive git command to be run from within grv. The output of the command is displayed in a pop-up window.
    • giti - Allows an interactive git command to be run from within grv. The command is run the controlling terminal.
    • help - Opens the help view described above.

Repository modification

  • Checkout refs and commits - HEAD can be set to a selected ref or commit.
  • Checkout confirmation - Users are prompted for confirmation before a checkout is performed. The confirm-checkout config variable is used toggle this behaviour.
  • Create branch - New branches can be created from selected ref's and commits.
  • Stage & unstage - Individual files and groups of files in the Status View can now be staged and unstaged.
  • Commit - Staged files in the Status View can now be committed. The users configured editor is opened in order to provide a commit message, which grv uses to create the commit.
  • Read only mode - A -readOnly command line flag has been added. When provided any operation that attempts to modify the repository will result in a read-only error. Use this flag to ensure grv cannot modify a repository.

Bug fixes

  • Invalid collation character (#39, #25) - grv now falls back to using the git binary when the Invalid collation character error is detected. The git-binary-file-path config variable can be used to specify the file path to the gitbinary if it is not in a users $PATH. This is a workaround until the underlying issue is fixed in libgit2.
  • Error opening terminal: xterm-256color (#46) - The version of ncurses statically compiled into the grv v0.1.3 release was not compatible with the new terminfo format used by ncurses 6.1. Future grv releases will be compiled with newer versions of ncurses, which are compatible with both the old and new terminfo formats.
  • Status bar could dynamically show current key bindings (#58) - The key bindings displayed on the bottom row of grv now take into account user defined bindings.
  • Remapped default key bindings not shown in the Help View (#60) - The help view now correctly takes into account user defined key bindings when displaying current key bindings.
  • <grv-remove-view> has to be run twice to remove Help View (#61) - Fixed by the improved tab handling described in the General section above.
  • Switch back to the last active view after closing the Help View (#62) - Fixed by the improved tab handling described in the General section above.
  • cannot scroll with mouse wheel when mouse is enabled (#63) - grv could not detect scroll down events as ncurses did not provide mouse event data when a scroll down event occurred. grv now interprets a mouse event without data to be a scroll down event.

v0.1.3

6 years ago

Updates since v0.1.2:

  • Added mouse support
  • Added more vim keybindings
  • Can filter by full commit message
  • Many bug fixes

v0.1.2

6 years ago
  • Dependencies are now vendored
  • A couple of bug fixes since v0.1.1

v0.1.1

6 years ago

This release contains bug fixes made since v0.1.0

v0.1.0

6 years ago