All notable changes to this project will be documented in this file.
- (rebase) Use new picker when selecting a rebase target
- Convert branch operations to interactive picker
- Use new interactive picker when merging (#496)
- Interactive picker functionality and ui
- Align menu key and label spacing (#476)
- Keys double press on Windows (#385) (again)
- Make
backtabkey bindable (shift-tab)
- Add customizable UI styles for menus and messages (#475)
- Add fetch from upstream and push remote
- Rename 'Toggle Section' to 'Fold/Unfold', make it context aware
- Handle non-UTF8 bytes in git command output
- Do not rely on srcdir being named exactly
gituto run tests - (config)
style.syntax_highlight.enabledhad no effect
- Gitu now boosts its own - more flexible layout module.
- (config) Recognize "space" special character in key parser (#449)
- Implement spinoff branch command (#445)
- Discarding files/hunks/lines now covers more cases
- [un]staging of deleted files did not work
- Crash when file mode changed
- Close menu when errors occur
- Potential cause of terminal codes being printed after exit
- Parse filenames w.o. prefix, quoted unicode. Improve parse errors
- Replace
similardep with the more performantimara_diff - (file-watcher) Start the watcher without blocking the main thread
- Add some padding to the menu
- Don't refresh previous screen when closing a nested one
- Revert to using Crossterm as backend (fixes rendering/input bugs)
- Revert back to forking out to git to check status (faster)
- Skip status check if
status.showUntrackedFiles false, helps in large repos - Avoid excessive allocation while computing hunk highlights
- Change rendering output from Stderr to Stdout - more efficient
- Support file line positions for the micro editor (#424)
- Add mouse wheel scrolling support
- Simple mouse interactions
- Show the diff on the stash detail screen
- Mouse clicks on invalid screen lines trigger actions
- Avoid redrawing for unhandled mouse events
- Disable mouse reporting when mouse support is disabled
- Workaround Termwiz mouse scroll event buggy handling
- Allow configuring recent commits and stash list limits
- (config) Removed support of sequences of keys (e.g. abc)
- (config) Report invalid key binding errors
- Process bug when running show commands on Windows (#330)
- Ability to invoke merge operations (#401)
- Add config cli arg to override the config file to use (#400)
- Crash when opening PHP files (#405)
- Ability to delete a remote
- Commit extend (#396)
- Optimize & defer rendering of items in editor, esp. diff hunk highlights (#392)
- Ability to rename a remote
- Switch terminal backend from Crossterm to Termwiz
- Shift modifier & uppercase key events would not work in certain terminals (#395)
- More efficiently keep track of changes between updates
- Discard line by line (+ configure when to confirm discard)
- Ability to add a remote
- (highlighting) Update tree-sitter, replace dated toml lib with toml-ng
- (show) Crash when sometimes attempting to show a commit
- Opening hunk in EDITOR used wrong line number
- Unmerged branches could not be deleted via discard action
- Hint external commands to output colors
- Add delete option to branch menu
- Ignore diff.external, in case its set to an unsupported tool #369
- (prompt) Freeze when a command would fail after a prompt occurred
- Disable filewatcher when
status.showUntrackedFilesis off - Replace
ignorelib withlibgit2ignore functionality - FileWatcher now ignores changes from patterns in .gitignore
- Support custom path prefixes in Git diff parser (e.g. i/... w/...) (#361)
- Disable filewatcher when it fails to initialize
- (crates-io-release) Resolve issue with publishing to crates-io
- (crates-io-release) Specify gitu-diff to not be published
- Issue with project lockfile/release
- Print command stderr to screen as they run (e.g. git hooks)
- Fall back to remote.pushDefault when branch pushRemote is not set
GITU_SHOW_EDITORenv var as an option aboveEDITORetc.- Improve on error-handling. Errors should now provide more context.
- Change "conflicted" file status to "unmerged", remove redundant "unmerged" section
- New diff-parser, easier to maintain, integrates better
- (file-watcher) Freeze on startup, log error and stop on failure
- Accurate --version in Github releases
- Add support for
nvrcommand with line number navigation
- Rebase menu opening after closing Neovim
- Change logging level to reduce inotify spam
- Don't refresh on
gitu.logwrites (gitu --log)
- (Revert) Add --no-edit flag (bound to -E)
- Update on file changes
- Open help with
?too, close withh/?(#280)
- Cursor sometimes hidden when spawning editor
- 'Standard input is not a terminal' when opening editor
- Staircased git output
- Add
refresh_on_file_changebool to en/disable file watcher
- (config) Collapse screen headers via e.g.
general.collapsed_sections = ["recent_commits"]
- Set version properly in Github release
- Support "The Two Remotes": https://magit.vc/manual/3.2.0/magit/The-Two-Remotes.html
- Bind 'Pu' to new action:
push_to_upstream - Bind 'Pp' to new action:
push_to_push_remote - Bind 'Fu' to new action:
pull_from_upstream - Bind 'Fp' to new action:
pull_from_push_remote - Remove 'Pp' <->
git push(depended onpush.default) - Remove 'Fp' <->
git pull(from upstream) - Rename
push_elsewheretopush_to_elsewhere - Rename
pull_elsewheretopull_from_elsewhere
- Change priority order of editor envvar lookup
- (status) Detect renamed files
- (instant fixup commit) Would not work with some versions of Git
- (instant fixup commit) Use --keep-empty and --autostash like Magit
- (instant fixup commit) Errors wouldn't show
- (commit) Instant fixup
- Invisible menu after closing an input prompt
- Wording in menus made more consistent to Magit
- Upgrade libgit2 to 1.8.1 to support new
index.skipHashgit config
- Make cursor and selection symbol configurable
- Tabs would not be rendered, render them as 4 spaces for now
- (flake) Add AppKit to build inputs
- -n argument to limit log
- -F to grep for commits in log menu
- Support value arguments
- Pin exact tree-sitter version to prevent common build breaks
- Bad diffs when git's
autocrlfwas enabled
- Add "elsewhere" option to fetch, pull and push menu
- Syntax highlighting for Elixir
- Hint/preserve missing newlines in diffs/patches
- Crash when trying to highlight
.tsxfiles
- Move to parent section with alt+h
- Move to next/prev sections with alt+j and alt+k
- On MacOS: load
~/.config/gitu/config.tomlinstead of~/Library/Application Support/gitu/config.toml - Add Revert commit/abort/continue
- Show revert status
- Scala syntax highlighter would not load
- (ci) Release dir would not be created
- Release to windows
- Syntax highlighting with tree-sitter and revamp of diff style config
- (log) Ignore
prefetch/remotes/refs
- Moving page up/down resulted in view being refreshed
- Log whether config file is being loaded or not on startup (--log flag)
- Add blank lines between refs sections, don't show empty sections
- Segregate remotes into separate sections
- Make 3 sections in show refs screen: branches, remotes, tags
- When head detached show "?" instead of "*" on target match; update tests
- Copy commit hash with "y", move Show Refs to "Y"
- Cursor is kept in view when scrolling
- Togglable stash flags: --all & --include-untracked
- Typo in descriptions on menu
- Update stash promps to be more like in Magit
- Config option: general.always_show_help.enabled
- Add all args to rebase menu
- Add --prune and --tags flags to Fetch menu
- Add all on/off arg flags to Commit menu
- Add --rebase pull arg
- Add --force /--no-verify /--dry-run push args
- Main screen is more smart about scrolling when menu is open
- Redraw screen even if command failed
- Only stderr would show in log popup
- Display args more like Magit
- Remove move p/n from default bindings (move up/down)
- Make keybinds configurable
- Existing terminal text would bleed into gitu on startup
- Discarding staged files would not work & use git clean for removing untracked files
- Handle EDITOR args, and better deal with absolute paths
- Support sending keys on startup with a cli flag (-k)
- Prompt stash action instead of always "Stash index"
- Edge cases and error handling for stashing worktree (#103)
- Improve menu layout and define new keybind display
- Resolve issue showing files with crlf
- Set '--jobs' to 10 when running 'git fetch'
- Run fetch, pull and push without blocking the ui
- Implement 'rebase elsewhere', it prompts you where to rebase
- Prompt for rev on reset soft/mixed/hard
- Show multiple command outputs in popup
- Improve error-handling of external commands
- Discarding staged files wouldn't work
- Change command popup to be more intuitive
- Togglable argument '--force-with-lease' when pushing
- Show quit/close keybind on all menus
- Prompt input rev for 'log other'
- Style.selection_area now includes cursor line
- Change cursor to a vertical bar, add config
style.cursor
- Crash when trying to show diff of binary files
- Unstage individual lines with ctrl-up/down and 'u'
- Stage individual lines with ctrl-up/down and 's'
- Add configurable quit confirmation
- Cursor now skips unselectable lines more deterministically
- Show stash status, add 'save', 'pop', 'apply' and 'drop' actions
- Unstage all staged changes by hovering 'Staged' section
- Stage all unstaged changes by hover 'Unstaged' section
- Stage all untracked files by hovering 'Untracked' section
- Add --version flag
- Add Nix flake via ipetkov/crane
- Crate would not build (due to trying to get version via git)
- Interactive rebase includes parent (like magit)
- Target binds in help-menu had wrong name formatting
- Include changelog entry in github release
- Release to Github
- Prompt what to checkout, default to selected item (like Magit)
- Gitu would not open inside submodules
- Fixed scrolling after breaking in previous update
- Rebase --continue freeze
- Cursor would disappear when staging the last hunk of a delta
- Issue when cursor would disappear after external git updates
- Remove trailing space in 'Create and checkout branch: '
- Would not start on windows due to nix signal handling
- Move 'reset' keybind to capital 'X' to mimic magit
- Proper y/n prompt when discarding things
- Annotated tags would not display
- Add
style.line_highlight.[un]changedconfig options
- Terminal would corrupt text when quitting gitu after opening editor
- Terminal would corrupt text when gitu crashed
- Read not just EDITOR env var, but GIT_EDITOR & VISUAL too
- Add error popup and more graceful error handling
- Improve CHANGELOG.md format
- Replace --exit-immediately cli flag with new --print
- Show author date (not commit date) on commits like 'git log'
- Selection_line & selection_area now extend fully to left