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
4,602
in the current tree
Bus Factor
1
Daniel Stenberg is primary owner of 2,386 of 4,602 files
Single-Owner Files
465
10.1% of tracked files
Contributors
1,274
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
docs/examples/CMakeLists.txtViktor Szakats25
CMake/FindNettle.cmakeViktor Szakats23
tests/server/first.cViktor Szakats14
CMake/FindLibssh.cmakeViktor Szakats13
CMake/FindRustls.cmakeViktor Szakats13
CMake/FindLibgsasl.cmakeViktor Szakats12
CMake/FindCares.cmakeViktor Szakats12
tests/cmake/test.shViktor Szakats10
CMake/FindLibssh2.cmakeViktor Szakats10
CMake/FindLDAP.cmakeViktor Szakats10
Table: the 100 most-changed of 465 single-owner files
FileSole ownerCommits
docs/examples/CMakeLists.txtViktor Szakats25
CMake/FindNettle.cmakeViktor Szakats23
tests/server/first.cViktor Szakats14
CMake/FindLibssh.cmakeViktor Szakats13
CMake/FindRustls.cmakeViktor Szakats13
CMake/FindLibgsasl.cmakeViktor Szakats12
CMake/FindCares.cmakeViktor Szakats12
tests/cmake/test.shViktor Szakats10
CMake/FindLibssh2.cmakeViktor Szakats10
CMake/FindLDAP.cmakeViktor Szakats10
CMake/FindLibidn2.cmakeViktor Szakats10
CMake/FindLibuv.cmakeViktor Szakats10
lib/vquic/cf-ngtcp2-cmn.hStefan Eissing10
CMake/FindLibpsl.cmakeViktor Szakats9
tests/cmake/test.cViktor Szakats8
scripts/perlcheck.shViktor Szakats8
scripts/CMakeLists.txtViktor Szakats8
tests/cmake/CMakeLists.txtViktor Szakats8
CMake/FindQuiche.cmakeViktor Szakats8
src/mk-file-embed.plViktor Szakats7
lib/curlx/strdup.cViktor Szakats7
scripts/checksrc-all.plViktor Szakats7
docs/cmdline-opts/form-escape.mdDaniel Stenberg7
docs/cmdline-opts/cookie-jar.mdDaniel Stenberg7
projects/vms/config_h.comViktor Szakats6
tests/libtest/unitcheck.hViktor Szakats6
docs/cmdline-opts/remote-header-name.mdDaniel Stenberg6
docs/cmdline-opts/http3.mdDaniel Stenberg6
docs/cmdline-opts/digest.mdDaniel Stenberg6
docs/cmdline-opts/etag-save.mdDaniel Stenberg6
docs/cmdline-opts/ftp-port.mdDaniel Stenberg6
docs/cmdline-opts/trace-ascii.mdDaniel Stenberg6
.github/renovate.jsonViktor Szakats5
projects/OS400/curlmain.cViktor Szakats5
CMake/cmake_uninstall.in.cmakeViktor Szakats5
.github/scripts/shellcheck.shViktor Szakats5
lib/curlx/strdup.hViktor Szakats5
docs/cmdline-opts/no-clobber.mdDaniel Stenberg5
docs/cmdline-opts/basic.mdDaniel Stenberg5
docs/cmdline-opts/compressed-ssh.mdDaniel Stenberg5
docs/cmdline-opts/max-filesize.mdDaniel Stenberg5
docs/cmdline-opts/pass.mdDaniel Stenberg5
docs/cmdline-opts/sasl-ir.mdDaniel Stenberg5
docs/cmdline-opts/_GLOBBING.mdDaniel Stenberg5
docs/cmdline-opts/alt-svc.mdDaniel Stenberg5
docs/cmdline-opts/proxy-pass.mdDaniel Stenberg5
docs/cmdline-opts/_PROGRESS.mdDaniel Stenberg5
docs/cmdline-opts/proto-redir.mdDaniel Stenberg5
docs/cmdline-opts/trace-ids.mdDaniel Stenberg5
docs/cmdline-opts/proxy-ntlm.mdDaniel Stenberg5
docs/cmdline-opts/etag-compare.mdDaniel Stenberg5
docs/cmdline-opts/remote-name.mdDaniel Stenberg5
docs/cmdline-opts/trace.mdDaniel Stenberg5
.github/actions/pkg-install/action.ymlViktor Szakats4
projects/Windows/README.mdViktor Szakats4
projects/vms/build_vms.comViktor Szakats4
projects/vms/curl_gnv_build_steps.txtViktor Szakats4
projects/vms/readmeViktor Szakats4
CMake/FindGnuTLS.cmakeViktor Szakats4
tests/data/test2506Daniel Stenberg4
docs/cmdline-opts/_DESCRIPTION.mdDaniel Stenberg4
tests/data/test1627Daniel Stenberg4
docs/cmdline-opts/proto.mdDaniel Stenberg4
docs/cmdline-opts/abstract-unix-socket.mdDaniel Stenberg4
docs/cmdline-opts/oauth2-bearer.mdDaniel Stenberg4
docs/cmdline-opts/ssl-reqd.mdDaniel Stenberg4
docs/cmdline-opts/proxy-tlsauthtype.mdDaniel Stenberg4
docs/cmdline-opts/proxy-tlspassword.mdDaniel Stenberg4
docs/cmdline-opts/proxy-tlsuser.mdDaniel Stenberg4
docs/cmdline-opts/proto-default.mdDaniel Stenberg4
docs/cmdline-opts/post301.mdDaniel Stenberg4
docs/cmdline-opts/post302.mdDaniel Stenberg4
docs/cmdline-opts/tcp-nodelay.mdDaniel Stenberg4
docs/cmdline-opts/proxy-cert.mdDaniel Stenberg4
docs/cmdline-opts/proxy-ssl-allow-beast.mdDaniel Stenberg4
docs/cmdline-opts/proxy-tlsv1.mdDaniel Stenberg4
docs/cmdline-opts/doh-cert-status.mdDaniel Stenberg4
docs/cmdline-opts/globoff.mdDaniel Stenberg4
docs/cmdline-opts/interface.mdDaniel Stenberg4
docs/cmdline-opts/negotiate.mdDaniel Stenberg4
docs/cmdline-opts/ntlm.mdDaniel Stenberg4
docs/cmdline-opts/proxy-digest.mdDaniel Stenberg4
docs/cmdline-opts/happy-eyeballs-timeout-ms.mdDaniel Stenberg4
docs/cmdline-opts/dump-header.mdDaniel Stenberg4
docs/cmdline-opts/expect100-timeout.mdDaniel Stenberg4
docs/cmdline-opts/fail-early.mdDaniel Stenberg4
docs/cmdline-opts/ntlm-wb.mdDaniel Stenberg4
docs/cmdline-opts/parallel-immediate.mdDaniel Stenberg4
docs/cmdline-opts/next.mdDaniel Stenberg4
docs/cmdline-opts/proxy-negotiate.mdDaniel Stenberg4
projects/OS400/curlcl.cViktor Szakats3
.github/scripts/shellcheck-ci.shViktor Szakats3
tests/cmake/test.cppViktor Szakats3
lib/curlx/basename.cViktor Szakats3
.github/scripts/yamlcheck.shViktor Szakats3
projects/vms/build_gnv_curl_pcsi_desc.comViktor Szakats3
CMake/FindLibbacktrace.cmakeViktor Szakats3
lib/curlx/wait.hViktor Szakats3
lib/vquic/cf-ngtcp2.hStefan Eissing3
lib/vquic/cf-quiche.hStefan Eissing3

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
Daniel Stenberg2,3862464,165
Viktor Szakats1,8511323,881
Stefan Eissing17340886
Steve Holme560512
Dan Fandrich2411,505
Yang Tse220583
Joshua Rogers108100
Max Dymond77123
Sameeh Jubran7778
Zheng Yu5222
Samuel Henrique4066
Memduh Çelik406
Max Mehl31775
Yedaya Katsman3095
Michiel van Slobbe339
xhon-pelushi316
Jay Satiro21458
Patrick Monnerat20380
Aritra Basu2257
Jan Venekamp2141
Alhuda Khan2240
ns-ylambert2110
İlyas Serdar Dursun207
Kuroda Kayn217
Ron Kuper207

Showing top 25 of 1274 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
lib/url.c155Daniel Stenberg59.5%
configure.ac150Daniel Stenberg38.9%
lib/urldata.h145Daniel Stenberg58.0%
include/curl/curl.h131Daniel Stenberg62.6%
lib/vtls/openssl.c128Daniel Stenberg36.0%
CMakeLists.txt118Viktor Szakats58.0%
lib/http.c112Daniel Stenberg61.9%
lib/multi.c100Daniel Stenberg56.0%
tests/data/Makefile.am98Daniel Stenberg60.2%
src/tool_operate.c95Daniel Stenberg45.9%
src/tool_getparam.c88Daniel Stenberg48.4%
docs/libcurl/symbols-in-versions87Daniel Stenberg49.2%
lib/connect.c83Daniel Stenberg50.1%
tests/libtest/Makefile.inc75Daniel Stenberg45.1%
lib/transfer.c70Daniel Stenberg66.5%
lib/setopt.c70Daniel Stenberg54.0%
lib/ftp.c67Daniel Stenberg63.8%
lib/vtls/schannel.c62Viktor Szakats24.9%
tests/runtests.pl59Daniel Stenberg44.9%
lib/http2.c59Daniel Stenberg43.8%