Marco Hinz
8351e5212f
Improve detection of nested repos managed by different VCS
Assume a hg repo below a git repo. `git diff` on a file managed by hg, will return a successful exit value, but no output. So, if we got a successful exit value from multiple VCS tools, and none of them gave any output, keep them all as potential candidates. The next time Sy is run, only these candidates will be tested again. If one of them returns a proper diff, set b:sy.updated_by to that VCS and prune all other candidates. References #235
Signify (or just Sy) uses the sign column to indicate added, modified and removed lines in a file that is managed by a version control system (VCS).
- Supports git, mercurial, darcs, bazaar, subversion, cvs, rcs, fossil, accurev, perforce, tfs.
- Asynchronous execution of VCS tools for Vim 7.4.1967+ and Neovim.
- Preserves signs from other plugins.
- Handles nested repositories controlled by different VCS.
- Provides mappings for navigating hunks ("blocks of changed lines").
- Provides an operator that acts on hunks.
- Alternative workflow: Disable the plugin by default and toggle it per buffer on demand.
- Optional line highlighting.
- Optional skipping of filetypes/filenames.
- Optional stats in the statusline.
- Works out of the box, but allows fine-grained configuration.
- Great documentation and handsome maintainers!
If git is the only version control system you use, I suggest having a look at vim-gitgutter.
Installation
Use your favorite plugin manager, e.g. using vim-plug:
Plug 'mhinz/vim-signify'
Documentation
- Understand how the plugin works:
:h signify-modus-operandi
- Spare the plugin some work and read:
:h g:signify_vcs_list
Demo
Author and Feedback
If you like this plugin, star it! It's a great way of getting feedback. The same goes for reporting issues or feature requests.
Contact: Twitter
Co-maintainer: @jamessan
Description
Languages
Vim script
99.5%
Shell
0.5%