Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
3,936
in the current tree
Bus Factor
2
2 authors are primary owner of 2,241 of 3,936 files
Single-Owner Files
992
25.2% of tracked files
Contributors
1,368
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
src/nvim/input_cmdatom.cJustin M. Keyes55
scripts/vim_na_hunks_c.txtJan Edmund Lazo21
scripts/vim_na_hunks_vim.txtJan Edmund Lazo19
src/nvim/input_cmdatom_defs.hJustin M. Keyes18
src/nvim/input_cmdatom.hJustin M. Keyes18
scripts/vim_na_regexp.txtJan Edmund Lazo14
scripts/vim_na_hunks_help.txtJan Edmund Lazo11
test/old/testdir/test_plugin_matchparen.vimzeertzjq7
runtime/syntax/algol68.vimzeertzjq6
src/nvim/input_defs.hJustin M. Keyes6
Table: the 100 most-changed of 992 single-owner files
FileSole ownerCommits
src/nvim/input_cmdatom.cJustin M. Keyes55
scripts/vim_na_hunks_c.txtJan Edmund Lazo21
scripts/vim_na_hunks_vim.txtJan Edmund Lazo19
src/nvim/input_cmdatom_defs.hJustin M. Keyes18
src/nvim/input_cmdatom.hJustin M. Keyes18
scripts/vim_na_regexp.txtJan Edmund Lazo14
scripts/vim_na_hunks_help.txtJan Edmund Lazo11
test/old/testdir/test_plugin_matchparen.vimzeertzjq7
runtime/syntax/algol68.vimzeertzjq6
src/nvim/input_defs.hJustin M. Keyes6
src/gen/lint.luaJustin M. Keyes6
cmake/FindLibuv.cmakedundargoc6
runtime/syntax/log.vimzeertzjq5
runtime/compiler/vimdoc.vimzeertzjq5
test/old/testdir/test_format.vimzeertzjq5
test/functional/editor/atom_testutil.luaJustin M. Keyes5
runtime/syntax/readline.vimJustin M. Keyes5
runtime/syntax/sas.vimJustin M. Keyes5
runtime/syntax/mp.vimJustin M. Keyes5
src/wasm/nvim-worker.jsrawan101015
src/wasm/rpc.jsrawan101015
runtime/ftplugin/haredoc.vimzeertzjq4
test/old/testdir/test_codestyle.vimzeertzjq4
runtime/syntax/kitty.vimzeertzjq4
runtime/indent/lf.vimzeertzjq4
runtime/compiler/rime_deployer.vimzeertzjq4
runtime/ftplugin/bpftrace.vimzeertzjq4
runtime/syntax/tiasm.vimzeertzjq4
runtime/compiler/tombi.vimzeertzjq4
test/old/testdir/mouse.vimzeertzjq4
runtime/doc/vimscript.txtJustin M. Keyes4
test/functional/api/fast_spec.luaJustin M. Keyes4
test/functional/script/clint_spec.luaJustin M. Keyes4
runtime/lua/vim/_core/tag.luaJustin M. Keyes4
runtime/syntax/pike.vimJustin M. Keyes4
runtime/syntax/xpm2.vimJustin M. Keyes4
runtime/syntax/mf.vimJustin M. Keyes4
runtime/syntax/uil.vimJustin M. Keyes4
runtime/ftplugin/jq.vimChristian Clason4
runtime/lua/vim/async/_core.luaLewis Russell4
runtime/lua/vim/diagnostic/_shared.luaLewis Russell4
scripts/vim_na_hunks_h.txtJan Edmund Lazo4
src/mpack/mpack_core.hbfredl4
runtime/pack/dist/opt/netrw/autoload/netrw/os.vimJaehwang Jung4
cmake.config/iwyu/posix.impdundargoc4
cmake/FindLuajit.cmakedundargoc4
runtime/syntax/sshpublickey.vimzeertzjq3
test/old/testdir/test_plugin_ccomplete.vimzeertzjq3
test/old/testdir/samples/evil.zipzeertzjq3
runtime/syntax/cangjie.vimzeertzjq3
runtime/autoload/hare.vimzeertzjq3
runtime/ftplugin/llvm.vimzeertzjq3
runtime/ftplugin/m17ndb.vimzeertzjq3
runtime/ftplugin/tiasm.vimzeertzjq3
runtime/ftplugin/uci.vimzeertzjq3
runtime/indent/m17ndb.vimzeertzjq3
runtime/syntax/abnf.vimzeertzjq3
runtime/syntax/cgdbrc.vimzeertzjq3
runtime/syntax/haredoc.vimzeertzjq3
runtime/syntax/m17ndb.vimzeertzjq3
runtime/compiler/spotbugs.vimzeertzjq3
test/old/testdir/test_stacktrace.vimzeertzjq3
src/nvim/insert_defs.hJustin M. Keyes3
test/benchmark/option_spec.luaJustin M. Keyes3
runtime/lua/vim/_core/spell.luaJustin M. Keyes3
runtime/lua/vim/_core/vimfn.luaJustin M. Keyes3
src/.valgrind.suppJustin M. Keyes3
runtime/syntax/murphi.vimJustin M. Keyes3
runtime/syntax/hitest.vimJustin M. Keyes3
runtime/indent/gitconfig.vimJustin M. Keyes3
runtime/ftplugin/mf.vimJustin M. Keyes3
runtime/ftplugin/mp.vimJustin M. Keyes3
runtime/indent/mp.vimJustin M. Keyes3
runtime/syntax/asn.vimJustin M. Keyes3
runtime/syntax/asteriskvm.vimJustin M. Keyes3
runtime/syntax/b.vimJustin M. Keyes3
runtime/syntax/baan.vimJustin M. Keyes3
runtime/syntax/blank.vimJustin M. Keyes3
runtime/syntax/bst.vimJustin M. Keyes3
runtime/syntax/bzr.vimJustin M. Keyes3
runtime/syntax/cl.vimJustin M. Keyes3
runtime/syntax/clean.vimJustin M. Keyes3
runtime/syntax/cterm.vimJustin M. Keyes3
runtime/syntax/dcd.vimJustin M. Keyes3
runtime/syntax/def.vimJustin M. Keyes3
runtime/syntax/dracula.vimJustin M. Keyes3
runtime/syntax/dtml.vimJustin M. Keyes3
runtime/syntax/dylan.vimJustin M. Keyes3
runtime/syntax/dylanintr.vimJustin M. Keyes3
runtime/syntax/dylanlid.vimJustin M. Keyes3
runtime/syntax/eiffel.vimJustin M. Keyes3
runtime/syntax/esqlc.vimJustin M. Keyes3
runtime/syntax/esterel.vimJustin M. Keyes3
runtime/syntax/eviews.vimJustin M. Keyes3
runtime/syntax/expect.vimJustin M. Keyes3
runtime/syntax/fdcc.vimJustin M. Keyes3
runtime/syntax/gdmo.vimJustin M. Keyes3
runtime/syntax/gedcom.vimJustin M. Keyes3
runtime/syntax/gretl.vimJustin M. Keyes3
runtime/syntax/hb.vimJustin M. Keyes3

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
Justin M. Keyes1,2023652,544
zeertzjq1,0391692,073
dundargoc455921,437
Christian Clason4121991,308
Lewis Russell14318976
bfredl14220875
Jan Edmund Lazo8838709
ZyX592461
Sean Dewar437345
Gregory Anders242316
Barrett Ruth178248
Yi Ming16174
Luuk van Baal150314
rawan10101131120
Michael Reed111175
Maria Solano91117
glepnir80221
Thiago de Arruda80191
Shougo Matsushita81103
altermo8167
James McCoy72317
Evgeni Chasnovski70162
Olivia Kinnear7288
Phạm Bình An7266
Riley Bruins6189

Showing top 25 of 1368 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
runtime/doc/news.txt167Justin M. Keyes17.0%
src/nvim/eval.c142zeertzjq14.6%
runtime/doc/options.txt132zeertzjq24.4%
src/nvim/ex_docmd.c125zeertzjq19.8%
src/nvim/option.c122zeertzjq16.9%
runtime/lua/vim/lsp/util.lua115Lewis Russell9.6%
runtime/doc/lsp.txt111Justin M. Keyes16.3%
runtime/doc/lua.txt108Justin M. Keyes23.0%
src/nvim/window.c107zeertzjq24.1%
src/nvim/version.c102James McCoy12.8%
src/nvim/buffer.c102zeertzjq20.4%
src/nvim/ex_cmds.c101zeertzjq14.8%
test/functional/plugin/lsp_spec.lua99Mathias Fussenegger14.6%
src/nvim/main.c98Justin M. Keyes18.0%
runtime/doc/api.txt98Justin M. Keyes32.8%
src/nvim/ex_getln.c94zeertzjq20.6%
src/nvim/api/vim.c93Justin M. Keyes23.5%
src/nvim/fileio.c93dundargoc14.4%
runtime/lua/vim/lsp.lua91Mathias Fussenegger12.7%
src/nvim/normal.c90zeertzjq22.6%