https://github.com/git/git
Revision f4aa8c8bb11dae6e769cd930565173808cbb69c8 authored by Johannes Schindelin on 10 April 2024, 12:39:37 UTC, committed by Johannes Schindelin on 17 April 2024, 20:29:54 UTC
When cloning from somebody else's repositories, it is possible that,
say, the `upload-pack` command is overridden in the repository that is
about to be cloned, which would then be run in the user's context who
started the clone.

To remind the user that this is a potentially unsafe operation, let's
extend the ownership checks we have already established for regular
gitdir discovery to extend also to local repositories that are about to
be cloned.

This protection extends also to file:// URLs.

The fixes in this commit address CVE-2024-32004.

Note: This commit does not touch the `fetch`/`clone` code directly, but
instead the function used implicitly by both: `enter_repo()`. This
function is also used by `git receive-pack` (i.e. pushes), by `git
upload-archive`, by `git daemon` and by `git http-backend`. In setups
that want to serve repositories owned by different users than the
account running the service, this will require `safe.*` settings to be
configured accordingly.

Also note: there are tiny time windows where a time-of-check-time-of-use
("TOCTOU") race is possible. The real solution to those would be to work
with `fstat()` and `openat()`. However, the latter function is not
available on Windows (and would have to be emulated with rather
expensive low-level `NtCreateFile()` calls), and the changes would be
quite extensive, for my taste too extensive for the little gain given
that embargoed releases need to pay extra attention to avoid introducing
inadvertent bugs.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent 5c5a4a1
History
Tip revision: f4aa8c8bb11dae6e769cd930565173808cbb69c8 authored by Johannes Schindelin on 10 April 2024, 12:39:37 UTC
fetch/clone: detect dubious ownership of local repositories
Tip revision: f4aa8c8
File Mode Size
.github
Documentation
block-sha1
builtin
ci
compat
contrib
ewah
git-gui
gitk-git
gitweb
mergetools
negotiator
oss-fuzz
perl
po
refs
reftable
sha1collisiondetection @ 855827c
sha1dc
sha256
t
templates
trace2
xdiff
.cirrus.yml -rw-r--r-- 491 bytes
.clang-format -rw-r--r-- 5.0 KB
.editorconfig -rw-r--r-- 288 bytes
.gitattributes -rw-r--r-- 575 bytes
.gitignore -rw-r--r-- 3.5 KB
.gitmodules -rw-r--r-- 153 bytes
.mailmap -rw-r--r-- 16.8 KB
.tsan-suppressions -rw-r--r-- 689 bytes
CODE_OF_CONDUCT.md -rw-r--r-- 5.9 KB
COPYING -rw-r--r-- 18.3 KB
GIT-VERSION-GEN -rwxr-xr-x 752 bytes
INSTALL -rw-r--r-- 9.8 KB
LGPL-2.1 -rw-r--r-- 26.2 KB
Makefile -rw-r--r-- 117.6 KB
README.md -rw-r--r-- 3.6 KB
RelNotes l--------- 33 bytes
SECURITY.md -rw-r--r-- 1.9 KB
abspath.c -rw-r--r-- 7.2 KB
aclocal.m4 -rw-r--r-- 1.4 KB
add-interactive.c -rw-r--r-- 30.6 KB
add-interactive.h -rw-r--r-- 965 bytes
add-patch.c -rw-r--r-- 50.6 KB
advice.c -rw-r--r-- 8.6 KB
advice.h -rw-r--r-- 2.2 KB
alias.c -rw-r--r-- 2.3 KB
alias.h -rw-r--r-- 310 bytes
alloc.c -rw-r--r-- 2.7 KB
alloc.h -rw-r--r-- 486 bytes
apply.c -rw-r--r-- 133.7 KB
apply.h -rw-r--r-- 5.2 KB
archive-tar.c -rw-r--r-- 13.8 KB
archive-zip.c -rw-r--r-- 17.1 KB
archive.c -rw-r--r-- 19.1 KB
archive.h -rw-r--r-- 1.5 KB
attr.c -rw-r--r-- 28.7 KB
attr.h -rw-r--r-- 6.6 KB
banned.h -rw-r--r-- 977 bytes
base85.c -rw-r--r-- 2.8 KB
bisect.c -rw-r--r-- 30.3 KB
bisect.h -rw-r--r-- 2.4 KB
blame.c -rw-r--r-- 83.0 KB
blame.h -rw-r--r-- 5.6 KB
blob.c -rw-r--r-- 417 bytes
blob.h -rw-r--r-- 654 bytes
bloom.c -rw-r--r-- 8.0 KB
bloom.h -rw-r--r-- 3.0 KB
branch.c -rw-r--r-- 24.6 KB
branch.h -rw-r--r-- 5.5 KB
builtin.h -rw-r--r-- 12.5 KB
bulk-checkin.c -rw-r--r-- 10.3 KB
bulk-checkin.h -rw-r--r-- 1.1 KB
bundle-uri.c -rw-r--r-- 13.6 KB
bundle-uri.h -rw-r--r-- 2.4 KB
bundle.c -rw-r--r-- 17.0 KB
bundle.h -rw-r--r-- 1.9 KB
cache-tree.c -rw-r--r-- 24.4 KB
cache-tree.h -rw-r--r-- 2.2 KB
cache.h -rw-r--r-- 66.8 KB
cbtree.c -rw-r--r-- 3.4 KB
cbtree.h -rw-r--r-- 1.5 KB
chdir-notify.c -rw-r--r-- 1.8 KB
chdir-notify.h -rw-r--r-- 2.5 KB
check-builtins.sh -rwxr-xr-x 596 bytes
checkout.c -rw-r--r-- 1.9 KB
checkout.h -rw-r--r-- 369 bytes
chunk-format.c -rw-r--r-- 4.3 KB
chunk-format.h -rw-r--r-- 2.0 KB
color.c -rw-r--r-- 10.5 KB
color.h -rw-r--r-- 5.3 KB
column.c -rw-r--r-- 9.4 KB
column.h -rw-r--r-- 1.4 KB
combine-diff.c -rw-r--r-- 43.1 KB
command-list.txt -rw-r--r-- 12.9 KB
commit-graph.c -rw-r--r-- 69.4 KB
commit-graph.h -rw-r--r-- 6.2 KB
commit-reach.c -rw-r--r-- 23.8 KB
commit-reach.h -rw-r--r-- 3.8 KB
commit-slab-decl.h -rw-r--r-- 1.4 KB
commit-slab-impl.h -rw-r--r-- 3.1 KB
commit-slab.h -rw-r--r-- 2.5 KB
commit.c -rw-r--r-- 43.6 KB
commit.h -rw-r--r-- 14.2 KB
common-main.c -rw-r--r-- 2.1 KB
config.c -rw-r--r-- 93.8 KB
config.h -rw-r--r-- 22.5 KB
config.mak.dev -rw-r--r-- 3.4 KB
config.mak.in -rw-r--r-- 540 bytes
config.mak.uname -rw-r--r-- 25.4 KB
configure.ac -rw-r--r-- 37.3 KB
connect.c -rw-r--r-- 36.0 KB
connect.h -rw-r--r-- 1.2 KB
connected.c -rw-r--r-- 4.5 KB
connected.h -rw-r--r-- 1.9 KB
convert.c -rw-r--r-- 49.4 KB
convert.h -rw-r--r-- 7.3 KB
copy.c -rw-r--r-- 1.3 KB
credential.c -rw-r--r-- 12.2 KB
credential.h -rw-r--r-- 6.4 KB
csum-file.c -rw-r--r-- 5.3 KB
csum-file.h -rw-r--r-- 1.9 KB
ctype.c -rw-r--r-- 2.6 KB
daemon.c -rw-r--r-- 34.5 KB
date.c -rw-r--r-- 31.7 KB
date.h -rw-r--r-- 2.2 KB
decorate.c -rw-r--r-- 1.7 KB
decorate.h -rw-r--r-- 1.4 KB
delta-islands.c -rw-r--r-- 12.3 KB
delta-islands.h -rw-r--r-- 572 bytes
delta.h -rw-r--r-- 3.4 KB
detect-compiler -rwxr-xr-x 997 bytes
diagnose.c -rw-r--r-- 7.5 KB
diagnose.h -rw-r--r-- 348 bytes
diff-delta.c -rw-r--r-- 15.5 KB
diff-lib.c -rw-r--r-- 18.9 KB
diff-merges.c -rw-r--r-- 4.3 KB
diff-merges.h -rw-r--r-- 687 bytes
diff-no-index.c -rw-r--r-- 7.3 KB
diff.c -rw-r--r-- 197.3 KB
diff.h -rw-r--r-- 21.5 KB
diffcore-break.c -rw-r--r-- 9.3 KB
diffcore-delta.c -rw-r--r-- 5.5 KB
diffcore-order.c -rw-r--r-- 2.4 KB
diffcore-pickaxe.c -rw-r--r-- 7.1 KB
diffcore-rename.c -rw-r--r-- 51.2 KB
diffcore-rotate.c -rw-r--r-- 1.0 KB
diffcore.h -rw-r--r-- 7.6 KB
dir-iterator.c -rw-r--r-- 5.9 KB
dir-iterator.h -rw-r--r-- 4.5 KB
dir.c -rw-r--r-- 107.3 KB
dir.h -rw-r--r-- 19.5 KB
editor.c -rw-r--r-- 3.0 KB
entry.c -rw-r--r-- 14.9 KB
entry.h -rw-r--r-- 1.8 KB
environment.c -rw-r--r-- 11.1 KB
environment.h -rw-r--r-- 246 bytes
exec-cmd.c -rw-r--r-- 8.0 KB
exec-cmd.h -rw-r--r-- 475 bytes
fetch-negotiator.c -rw-r--r-- 712 bytes
fetch-negotiator.h -rw-r--r-- 1.8 KB
fetch-pack.c -rw-r--r-- 62.1 KB
fetch-pack.h -rw-r--r-- 3.1 KB
fmt-merge-msg.c -rw-r--r-- 18.1 KB
fmt-merge-msg.h -rw-r--r-- 444 bytes
fsck.c -rw-r--r-- 34.8 KB
fsck.h -rw-r--r-- 7.2 KB
fsmonitor--daemon.h -rw-r--r-- 5.7 KB
fsmonitor-ipc.c -rw-r--r-- 3.9 KB
fsmonitor-ipc.h -rw-r--r-- 1.3 KB
fsmonitor-path-utils.h -rw-r--r-- 1.4 KB
fsmonitor-settings.c -rw-r--r-- 7.4 KB
fsmonitor-settings.h -rw-r--r-- 1.8 KB
fsmonitor.c -rw-r--r-- 18.1 KB
fsmonitor.h -rw-r--r-- 3.7 KB
generate-cmdlist.sh -rwxr-xr-x 1.7 KB
generate-configlist.sh -rwxr-xr-x 370 bytes
generate-hooklist.sh -rwxr-xr-x 299 bytes
gettext.c -rw-r--r-- 3.2 KB
gettext.h -rw-r--r-- 1.4 KB
git-add--interactive.perl -rwxr-xr-x 46.6 KB
git-archimport.perl -rwxr-xr-x 36.1 KB
git-bisect.sh -rwxr-xr-x 1.6 KB
git-compat-util.h -rw-r--r-- 43.8 KB
git-curl-compat.h -rw-r--r-- 4.1 KB
git-cvsexportcommit.perl -rwxr-xr-x 12.8 KB
git-cvsimport.perl -rwxr-xr-x 31.3 KB
git-cvsserver.perl -rwxr-xr-x 159.9 KB
git-difftool--helper.sh -rwxr-xr-x 2.4 KB
git-filter-branch.sh -rwxr-xr-x 15.5 KB
git-instaweb.sh -rwxr-xr-x 21.6 KB
git-merge-octopus.sh -rwxr-xr-x 2.4 KB
git-merge-one-file.sh -rwxr-xr-x 3.6 KB
git-merge-resolve.sh -rwxr-xr-x 1.2 KB
git-mergetool--lib.sh -rw-r--r-- 9.7 KB
git-mergetool.sh -rwxr-xr-x 11.3 KB
git-p4.py -rwxr-xr-x 168.5 KB
git-quiltimport.sh -rwxr-xr-x 3.6 KB
git-request-pull.sh -rwxr-xr-x 4.0 KB
git-send-email.perl -rwxr-xr-x 61.3 KB
git-sh-i18n.sh -rw-r--r-- 1.7 KB
git-sh-setup.sh -rw-r--r-- 8.2 KB
git-submodule.sh -rwxr-xr-x 10.2 KB
git-svn.perl -rwxr-xr-x 63.1 KB
git-web--browse.sh -rwxr-xr-x 4.3 KB
git.c -rw-r--r-- 27.7 KB
git.rc -rw-r--r-- 635 bytes
gpg-interface.c -rw-r--r-- 28.6 KB
gpg-interface.h -rw-r--r-- 2.5 KB
graph.c -rw-r--r-- 40.1 KB
graph.h -rw-r--r-- 8.7 KB
grep.c -rw-r--r-- 47.3 KB
grep.h -rw-r--r-- 6.4 KB
hash-lookup.c -rw-r--r-- 3.2 KB
hash-lookup.h -rw-r--r-- 1.3 KB
hash.h -rw-r--r-- 9.3 KB
hashmap.c -rw-r--r-- 8.4 KB
hashmap.h -rw-r--r-- 19.8 KB
help.c -rw-r--r-- 20.5 KB
help.h -rw-r--r-- 3.3 KB
hex.c -rw-r--r-- 4.4 KB
hook.c -rw-r--r-- 3.7 KB
hook.h -rw-r--r-- 2.3 KB
http-backend.c -rw-r--r-- 19.0 KB
http-fetch.c -rw-r--r-- 4.3 KB
http-push.c -rw-r--r-- 49.8 KB
http-walker.c -rw-r--r-- 14.9 KB
http.c -rw-r--r-- 67.5 KB
http.h -rw-r--r-- 7.1 KB
ident.c -rw-r--r-- 17.6 KB
imap-send.c -rw-r--r-- 36.7 KB
iterator.h -rw-r--r-- 2.1 KB
json-writer.c -rw-r--r-- 8.5 KB
json-writer.h -rw-r--r-- 4.2 KB
khash.h -rw-r--r-- 12.8 KB
kwset.c -rw-r--r-- 20.6 KB
kwset.h -rw-r--r-- 2.5 KB
levenshtein.c -rw-r--r-- 2.5 KB
levenshtein.h -rw-r--r-- 203 bytes
line-log.c -rw-r--r-- 32.9 KB
line-log.h -rw-r--r-- 1.7 KB
line-range.c -rw-r--r-- 6.6 KB
line-range.h -rw-r--r-- 1.4 KB
linear-assignment.c -rw-r--r-- 4.1 KB
linear-assignment.h -rw-r--r-- 736 bytes
list-objects-filter-options.c -rw-r--r-- 10.9 KB
list-objects-filter-options.h -rw-r--r-- 5.7 KB
list-objects-filter.c -rw-r--r-- 22.0 KB
list-objects-filter.h -rw-r--r-- 3.2 KB
list-objects.c -rw-r--r-- 10.8 KB
list-objects.h -rw-r--r-- 860 bytes
list.h -rw-r--r-- 5.6 KB
ll-merge.c -rw-r--r-- 11.2 KB
ll-merge.h -rw-r--r-- 3.2 KB
lockfile.c -rw-r--r-- 5.6 KB
lockfile.h -rw-r--r-- 11.3 KB
log-tree.c -rw-r--r-- 31.6 KB
log-tree.h -rw-r--r-- 1.4 KB
ls-refs.c -rw-r--r-- 5.2 KB
ls-refs.h -rw-r--r-- 235 bytes
mailinfo.c -rw-r--r-- 28.6 KB
mailinfo.h -rw-r--r-- 1.3 KB
mailmap.c -rw-r--r-- 8.6 KB
mailmap.h -rw-r--r-- 272 bytes
match-trees.c -rw-r--r-- 8.5 KB
mem-pool.c -rw-r--r-- 4.2 KB
mem-pool.h -rw-r--r-- 1.6 KB
merge-blobs.c -rw-r--r-- 2.2 KB
merge-blobs.h -rw-r--r-- 232 bytes
merge-ort-wrappers.c -rw-r--r-- 1.4 KB
merge-ort-wrappers.h -rw-r--r-- 638 bytes
merge-ort.c -rw-r--r-- 163.8 KB
merge-ort.h -rw-r--r-- 3.6 KB
merge-recursive.c -rw-r--r-- 118.6 KB
merge-recursive.h -rw-r--r-- 3.7 KB
merge.c -rw-r--r-- 2.7 KB
mergesort.h -rw-r--r-- 2.9 KB
midx.c -rw-r--r-- 53.5 KB
midx.h -rw-r--r-- 2.9 KB
name-hash.c -rw-r--r-- 19.1 KB
notes-cache.c -rw-r--r-- 2.3 KB
notes-cache.h -rw-r--r-- 541 bytes
notes-merge.c -rw-r--r-- 22.7 KB
notes-merge.h -rw-r--r-- 2.9 KB
notes-utils.c -rw-r--r-- 5.0 KB
notes-utils.h -rw-r--r-- 1.5 KB
notes.c -rw-r--r-- 37.5 KB
notes.h -rw-r--r-- 12.6 KB
object-file.c -rw-r--r-- 70.3 KB
object-name.c -rw-r--r-- 51.2 KB
object-store.h -rw-r--r-- 17.2 KB
object.c -rw-r--r-- 14.4 KB
object.h -rw-r--r-- 7.3 KB
oid-array.c -rw-r--r-- 1.8 KB
oid-array.h -rw-r--r-- 4.2 KB
oidmap.c -rw-r--r-- 1.5 KB
oidmap.h -rw-r--r-- 2.3 KB
oidset.c -rw-r--r-- 1.8 KB
oidset.h -rw-r--r-- 3.1 KB
oidtree.c -rw-r--r-- 2.5 KB
oidtree.h -rw-r--r-- 584 bytes
pack-bitmap-write.c -rw-r--r-- 19.9 KB
pack-bitmap.c -rw-r--r-- 59.2 KB
pack-bitmap.h -rw-r--r-- 3.7 KB
pack-check.c -rw-r--r-- 5.3 KB
pack-mtimes.c -rw-r--r-- 2.9 KB
pack-mtimes.h -rw-r--r-- 658 bytes
pack-objects.c -rw-r--r-- 5.1 KB
pack-objects.h -rw-r--r-- 8.8 KB
pack-revindex.c -rw-r--r-- 12.9 KB
pack-revindex.h -rw-r--r-- 4.2 KB
pack-write.c -rw-r--r-- 15.8 KB
pack.h -rw-r--r-- 4.0 KB
packfile.c -rw-r--r-- 58.2 KB
packfile.h -rw-r--r-- 7.0 KB
pager.c -rw-r--r-- 5.3 KB
parallel-checkout.c -rw-r--r-- 18.4 KB
parallel-checkout.h -rw-r--r-- 3.3 KB
parse-options-cb.c -rw-r--r-- 6.9 KB
parse-options.c -rw-r--r-- 32.5 KB
parse-options.h -rw-r--r-- 14.9 KB
patch-delta.c -rw-r--r-- 2.4 KB
patch-ids.c -rw-r--r-- 3.6 KB
patch-ids.h -rw-r--r-- 1.2 KB
path.c -rw-r--r-- 38.9 KB
path.h -rw-r--r-- 5.5 KB
pathspec.c -rw-r--r-- 21.4 KB
pathspec.h -rw-r--r-- 5.9 KB
pkt-line.c -rw-r--r-- 15.6 KB
pkt-line.h -rw-r--r-- 8.9 KB
preload-index.c -rw-r--r-- 4.2 KB
pretty.c -rw-r--r-- 55.7 KB
pretty.h -rw-r--r-- 4.8 KB
prio-queue.c -rw-r--r-- 2.0 KB
prio-queue.h -rw-r--r-- 1.6 KB
progress.c -rw-r--r-- 9.1 KB
progress.h -rw-r--r-- 852 bytes
promisor-remote.c -rw-r--r-- 6.4 KB
promisor-remote.h -rw-r--r-- 1.3 KB
prompt.c -rw-r--r-- 1.6 KB
prompt.h -rw-r--r-- 223 bytes
protocol-caps.c -rw-r--r-- 2.5 KB
protocol-caps.h -rw-r--r-- 194 bytes
protocol.c -rw-r--r-- 2.5 KB
protocol.h -rw-r--r-- 1.1 KB
prune-packed.c -rw-r--r-- 959 bytes
prune-packed.h -rw-r--r-- 152 bytes
quote.c -rw-r--r-- 12.5 KB
quote.h -rw-r--r-- 3.9 KB
range-diff.c -rw-r--r-- 15.7 KB
range-diff.h -rw-r--r-- 711 bytes
reachable.c -rw-r--r-- 6.5 KB
reachable.h -rw-r--r-- 520 bytes
read-cache.c -rw-r--r-- 104.4 KB
rebase-interactive.c -rw-r--r-- 7.6 KB
rebase-interactive.h -rw-r--r-- 597 bytes
rebase.c -rw-r--r-- 1.1 KB
rebase.h -rw-r--r-- 226 bytes
ref-filter.c -rw-r--r-- 75.9 KB
ref-filter.h -rw-r--r-- 4.4 KB
reflog-walk.c -rw-r--r-- 8.5 KB
reflog-walk.h -rw-r--r-- 965 bytes
reflog.c -rw-r--r-- 10.9 KB
reflog.h -rw-r--r-- 1.3 KB
refs.c -rw-r--r-- 64.9 KB
refs.h -rw-r--r-- 35.9 KB
refspec.c -rw-r--r-- 6.4 KB
refspec.h -rw-r--r-- 2.3 KB
remote-curl.c -rw-r--r-- 41.7 KB
remote.c -rw-r--r-- 73.6 KB
remote.h -rw-r--r-- 13.1 KB
replace-object.c -rw-r--r-- 2.2 KB
replace-object.h -rw-r--r-- 1.4 KB
repo-settings.c -rw-r--r-- 3.8 KB
repository.c -rw-r--r-- 8.1 KB
repository.h -rw-r--r-- 6.4 KB
rerere.c -rw-r--r-- 31.9 KB
rerere.h -rw-r--r-- 1.4 KB
reset.c -rw-r--r-- 5.2 KB
reset.h -rw-r--r-- 1.5 KB
resolve-undo.c -rw-r--r-- 4.5 KB
resolve-undo.h -rw-r--r-- 581 bytes
revision.c -rw-r--r-- 120.6 KB
revision.h -rw-r--r-- 15.3 KB
run-command.c -rw-r--r-- 42.9 KB
run-command.h -rw-r--r-- 18.3 KB
scalar.c -rw-r--r-- 22.6 KB
send-pack.c -rw-r--r-- 19.6 KB
send-pack.h -rw-r--r-- 914 bytes
sequencer.c -rw-r--r-- 175.8 KB
sequencer.h -rw-r--r-- 8.2 KB
serve.c -rw-r--r-- 7.8 KB
serve.h -rw-r--r-- 150 bytes
server-info.c -rw-r--r-- 7.5 KB
setup.c -rw-r--r-- 46.4 KB
sh-i18n--envsubst.c -rw-r--r-- 10.2 KB
sha1dc_git.c -rw-r--r-- 889 bytes
sha1dc_git.h -rw-r--r-- 690 bytes
shallow.c -rw-r--r-- 22.1 KB
shallow.h -rw-r--r-- 2.6 KB
shared.mak -rw-r--r-- 3.3 KB
shell.c -rw-r--r-- 5.4 KB
shortlog.h -rw-r--r-- 788 bytes
sideband.c -rw-r--r-- 6.6 KB
sideband.h -rw-r--r-- 1.0 KB
sigchain.c -rw-r--r-- 1.1 KB
sigchain.h -rw-r--r-- 1.7 KB
simple-ipc.h -rw-r--r-- 6.7 KB
sparse-index.c -rw-r--r-- 15.4 KB
sparse-index.h -rw-r--r-- 1.5 KB
split-index.c -rw-r--r-- 13.7 KB
split-index.h -rw-r--r-- 1.2 KB
stable-qsort.c -rw-r--r-- 986 bytes
strbuf.c -rw-r--r-- 25.9 KB
strbuf.h -rw-r--r-- 24.0 KB
streaming.c -rw-r--r-- 12.4 KB
streaming.h -rw-r--r-- 513 bytes
string-list.c -rw-r--r-- 7.7 KB
string-list.h -rw-r--r-- 10.1 KB
strmap.c -rw-r--r-- 4.3 KB
strmap.h -rw-r--r-- 6.8 KB
strvec.c -rw-r--r-- 2.0 KB
strvec.h -rw-r--r-- 2.8 KB
sub-process.c -rw-r--r-- 5.5 KB
sub-process.h -rw-r--r-- 3.1 KB
submodule-config.c -rw-r--r-- 23.1 KB
submodule-config.h -rw-r--r-- 4.4 KB
submodule.c -rw-r--r-- 67.5 KB
submodule.h -rw-r--r-- 6.1 KB
symlinks.c -rw-r--r-- 10.0 KB
tag.c -rw-r--r-- 5.6 KB
tag.h -rw-r--r-- 727 bytes
tar.h -rw-r--r-- 693 bytes
tempfile.c -rw-r--r-- 9.2 KB
tempfile.h -rw-r--r-- 9.9 KB
thread-utils.c -rw-r--r-- 2.6 KB
thread-utils.h -rw-r--r-- 1.4 KB
tmp-objdir.c -rw-r--r-- 7.0 KB
tmp-objdir.h -rw-r--r-- 2.6 KB
trace.c -rw-r--r-- 10.4 KB
trace.h -rw-r--r-- 8.1 KB
trace2.c -rw-r--r-- 21.2 KB
trace2.h -rw-r--r-- 21.3 KB
trailer.c -rw-r--r-- 31.1 KB
trailer.h -rw-r--r-- 3.8 KB
transport-helper.c -rw-r--r-- 42.0 KB
transport-internal.h -rw-r--r-- 2.2 KB
transport.c -rw-r--r-- 41.5 KB
transport.h -rw-r--r-- 9.8 KB
tree-diff.c -rw-r--r-- 18.0 KB
tree-walk.c -rw-r--r-- 32.4 KB
tree-walk.h -rw-r--r-- 6.9 KB
tree.c -rw-r--r-- 3.7 KB
tree.h -rw-r--r-- 1.2 KB
unicode-width.h -rw-r--r-- 9.6 KB
unimplemented.sh -rw-r--r-- 101 bytes
unix-socket.c -rw-r--r-- 2.7 KB
unix-socket.h -rw-r--r-- 370 bytes
unix-stream-server.c -rw-r--r-- 2.9 KB
unix-stream-server.h -rw-r--r-- 760 bytes
unpack-trees.c -rw-r--r-- 82.5 KB
unpack-trees.h -rw-r--r-- 3.4 KB
upload-pack.c -rw-r--r-- 47.0 KB
upload-pack.h -rw-r--r-- 371 bytes
url.c -rw-r--r-- 2.5 KB
url.h -rw-r--r-- 697 bytes
urlmatch.c -rw-r--r-- 18.5 KB
urlmatch.h -rw-r--r-- 2.8 KB
usage.c -rw-r--r-- 7.4 KB
userdiff.c -rw-r--r-- 15.2 KB
userdiff.h -rw-r--r-- 1.3 KB
utf8.c -rw-r--r-- 20.1 KB
utf8.h -rw-r--r-- 3.6 KB
varint.c -rw-r--r-- 660 bytes
varint.h -rw-r--r-- 154 bytes
version.c -rw-r--r-- 718 bytes
version.h -rw-r--r-- 230 bytes
versioncmp.c -rw-r--r-- 5.2 KB
walker.c -rw-r--r-- 7.7 KB
walker.h -rw-r--r-- 1.1 KB
wildmatch.c -rw-r--r-- 7.8 KB
wildmatch.h -rw-r--r-- 264 bytes
worktree.c -rw-r--r-- 20.8 KB
worktree.h -rw-r--r-- 6.3 KB
wrap-for-bin.sh -rw-r--r-- 946 bytes
wrapper.c -rw-r--r-- 17.1 KB
write-or-die.c -rw-r--r-- 2.4 KB
ws.c -rw-r--r-- 9.3 KB
wt-status.c -rw-r--r-- 72.7 KB
wt-status.h -rw-r--r-- 4.8 KB
xdiff-interface.c -rw-r--r-- 7.6 KB
xdiff-interface.h -rw-r--r-- 2.7 KB
zlib.c -rw-r--r-- 6.1 KB

README.md

back to top