Skip to content

Releases: rbong/vim-flog

v3.0.0

06 Sep 18:37
Compare
Choose a tag to compare

Flog is a Git branch viewer that integrates with Fugitive.
This release focuses on making Flog even better looking, even faster, and adding auto-updates.

screen-graph

See the v3 help thread for migration instructions and configuration tips if you are coming from v2.
If you have any questions, don't hesitate to ask.

After installing Flog, you can also run :help flog to see the full help documentation.
If you encounter any bugs or other problems, please post a new issue.

Major improvements:

  • Add support for new branch drawing unicode characters.
    This currently requires the Kitty terminal or flog-symbols.
    These symbols make merges and forks clearer and make the graph prettier.
  • Use a streamlined branch drawing structure to make branches clearer even if new symbols aren't used.
  • Improve performance even more.
    The Rust repo now loads with 20,000 commits in 0.38 seconds
    Previously, it loaded in 0.58 seconds, making this case a more than 1.5x improvement.
    Performance improvements are non-linear and are better the more commits are included in the output.
  • Dynamically color commits instead of relying on syntax highlighting.
    This relies on concealed characters in the output.
  • Dynamically color branches instead of relying on inaccurate syntax highlighting (Neovim only).
    Branch color shifts with moving branches, and merges are colored according to relevant branches.
    This is more performant than syntax-based highlighting while scrolling.
  • Add the -auto-update option to automatically update Flog when there are any changes to the repository (Neovim only).
  • Tweak default branch colors to avoid so many similar colors.

Other enhancements:

  • Add mappings to yank commit graph window text with or without the graph: y<C-X>, y<C-T>.
    These removes any of the new concealed characters from the yanked text.
  • Add -default-expanded and -default-collapsed options.
  • Add mappings to expand/collapse all commits: g>, g<.
  • Toggle -patch based on implied value if it was not previously set.
  • Jump to top/bottom of commits when changing -skip using ]]/[[.
  • Change the default number of branch highlight groups to 8 instead of 9.
  • Add a setting to tweak the number of branch highlight groups for customization: g:flog_num_branch_colors
  • Add a setting to add an extra blank line after commits: g:flog_enable_extra_padding
  • Improve dynamic update detection even when not using auto-updates.
  • Document available highlight groups.
  • Add flog#Version() to make it easier for plugin authors to detect the version.
  • Add :Flogsp as an abbreviation for :Flogsplit.
  • Add :Flogspc as an abbreviation for :Flogsplitcommit.
  • Open :Flog in the current tab if it is empty by default.
  • Tweak the flog#Exec() API to be clearer and have better defaults.
  • Keep focus in the final window by default when using :Floggit.
    Previously, focus returned to the commit graph window by default.
    This makes the command work similarly to :Git.
  • Close temporary side windows before opening new ones instead of after.
    This fixes many cases where window layout could be butchered, but may make integration/custom commands harder to write.
  • Add Lua wrappers for public API functions for Neovim users.
  • Disable mini.trailspace in the Flog buffer.
  • Add the %(h'x,'y) format item for getting a range of hashes, such as the visual range.
  • Add the %P format item for getting the current path(s) prefixed with "--".
    This can be used for constructing commands that always use the current path.

Other fixes:

  • Fix Neovim-specific memory and performance issues, particularly with multiline commits and inline patches.
  • Fix various user options being overridden with defaults.
  • Make default jumplist mappings (g:flog_jumplist_default_mappings) silent.
  • Fix count on default jumplist mappings.
  • Fix malformed jumplist when using default jumplist mappings.
  • Improve handling of alternate filename and jumplist on update.

v2.1.0

30 Aug 22:33
Compare
Choose a tag to compare

Bug fixes:

  • Fix an issue where completion caused an error if -path was specified.
  • Fix many cases of escaping special characters in shell commands.
  • Fix case where contextual completion was not filtered by visual selection.
  • Fix opening a visually selected range with only one line.
  • Fix error when running Vim without Lua compiled.
  • Fix incorrect colors in some cases with fading branches.
  • Fix import errors using early versions of vim9script.
  • Fix error escaping shell commands on Windows.
  • Don't overwrite the default register when initializing/updating.
  • Fix missing light mode first branch color.
  • Fix some warning messages mistakenly causing functions to abort.
  • Fix completing branches and remotes with slashes.

Enhancements:

  • Optimize syntax highlighting and improve matches.
  • Add help mappings for different mapping groups: d?, c?, r?.
  • Add mappings for jumping to commit parents/children: {, }.
  • Add mappings for jumping backwards/forwards in commit history: <C-O>, <C-I>.
  • Add mappings for collapsing/expanding/toggling commits: <, >, =
  • Add ability to add commit jumplist/mark support to default Vim mappings.
  • Add partial support in versions of Vim without setcursorcharpos().
  • Add -first-parent flag which is equivalent to git log --first-parent.
  • Add mappings to create commits borrowed from Fugitive: cc, ca, ce.
  • Add mapping to populate the command line with the commit under the cursor: ..
  • Add more contextual completions when selecting a visual range.
  • Add the -patch flag, which enables inline diffs (previously only -no-patch was supported).

Changes:

  • Color curved lines according to their origin branch, which looks more correct.
  • Use the commit under the cursor as the rebase target instead of its parent.
    The parent is used as the rebase target in Fugitive, but since Flog can view multiple branches, this makes some targets impossible.

v2.0.0

22 Jan 07:02
Compare
Choose a tag to compare

This release contains many breaking changes and large updates. See the v2 Migration Guide for more details.

Most notably:

  • Flog now draws the graph branches itself
  • Flog is now faster
  • Branch and commit highlighting is now more accurate

See also this issue if you have any problems.

v1.3.0

02 May 23:58
Compare
Choose a tag to compare
Add -sort option

v0.0.0

09 Apr 04:47
Compare
Choose a tag to compare
Update tests to v7.4.2367/v8.2.055