Rename s:shellslash() to s:Slash()
[vim-fugitive.git] / CONTRIBUTING.markdown
blob843bbe6bf85f1692e1a445702ee2373b0e070963
1 Before reporting a bug, you should try stripping down your Vim configuration
2 and removing other plugins.  The sad truth about VimScript is that it is
3 fraught with incompatibilities waiting to happen.  I'm happy to work around
4 them where I can, but it's up to you to isolate the conflict.
6 Fugitive is particularly prone to regressions due to Git version issues,
7 platform issues, and interactions with other plugins.  I end up bisecting a
8 lot more than other projects, and thus I'm especially meticulous here about
9 maintaining a clean, readable, history.  Squash and force push any requested
10 changes to a pull request.  And if your [commit message
11 sucks](https://commit.style), I'm not going to accept it.  Period.
13 If your contribution involves adding a configuration option, you are going to
14 need a very compelling justification for it.  Options add a maintenance
15 burden, support burden, and documentation bloat, and oftentimes can be
16 achieved much more simply with a custom map or autocommand.  If your option
17 controls an underlying Git command, ask yourself why Git itself does not offer
18 such configuration.
20 Beyond that, don't be shy about asking before patching.  What takes you hours
21 might take me minutes simply because I have both domain knowledge and a
22 perverse knowledge of VimScript so vast that many would consider it a symptom
23 of mental illness.  On the flip side, some ideas I'll reject no matter how
24 good the implementation is.  "Send a patch" is an edge case answer in my book.