https://github.com/git/git
Revision 580097bf95fccda1ebed4b9d81635a27fb322fd9 authored by Jeff King on 02 April 2024, 20:05:17 UTC, committed by Johannes Schindelin on 10 April 2024, 17:24:48 UTC
In get_active_slot(), we return a CURL handle that may have been used
before (reusing them is good because it lets curl reuse the same
connection across many requests). We set a few curl options back to
defaults that may have been modified by previous requests.

We reset POSTFIELDS to NULL, but do not reset POSTFIELDSIZE (which
defaults to "-1"). This usually doesn't matter because most POSTs will
set both fields together anyway. But there is one exception: when
handling a large request in remote-curl's post_rpc(), we don't set
_either_, and instead set a READFUNCTION to stream data into libcurl.

This can interact weirdly with a stale POSTFIELDSIZE setting, because
curl will assume it should read only some set number of bytes from our
READFUNCTION. However, it has worked in practice because we also
manually set a "Transfer-Encoding: chunked" header, which libcurl uses
as a clue to set the POSTFIELDSIZE to -1 itself.

So everything works, but we're better off resetting the size manually
for a few reasons:

  - there was a regression in curl 8.7.0 where the chunked header
    detection didn't kick in, causing any large HTTP requests made by
    Git to fail. This has since been fixed (but not yet released). In
    the issue, curl folks recommended setting it explicitly to -1:

      https://github.com/curl/curl/issues/13229#issuecomment-2029826058

    and it indeed works around the regression. So even though it won't
    be strictly necessary after the fix there, this will help folks who
    end up using the affected libcurl versions.

  - it's consistent with what a new curl handle would look like. Since
    get_active_slot() may or may not return a used handle, this reduces
    the possibility of heisenbugs that only appear with certain request
    patterns.

Note that the recommendation in the curl issue is to actually drop the
manual Transfer-Encoding header. Modern libcurl will add the header
itself when streaming from a READFUNCTION. However, that code wasn't
added until 802aa5ae2 (HTTP: use chunked Transfer-Encoding for HTTP_POST
if size unknown, 2019-07-22), which is in curl 7.66.0. We claim to
support back to 7.19.5, so those older versions still need the manual
header.

This is a backport of 3242311742 (http: reset POSTFIELDSIZE when
clearing curl handle, 2024-04-02) into the `maint-2.39` branch.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent f44e6a2
History
Tip revision: 580097bf95fccda1ebed4b9d81635a27fb322fd9 authored by Jeff King on 02 April 2024, 20:05:17 UTC
http: reset POSTFIELDSIZE when clearing curl handle
Tip revision: 580097b
File Mode Size
.github
Documentation
block-sha1
builtin
ci
compat
contrib
ewah
git-gui
gitk-git
gitweb
mergetools
negotiator
perl
po
ppc
refs
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.4 KB
.gitmodules -rw-r--r-- 153 bytes
.mailmap -rw-r--r-- 16.6 KB
.travis.yml -rw-r--r-- 1.0 KB
.tsan-suppressions -rw-r--r-- 689 bytes
CODE_OF_CONDUCT.md -rw-r--r-- 5.8 KB
COPYING -rw-r--r-- 18.3 KB
GIT-VERSION-GEN -rwxr-xr-x 752 bytes
INSTALL -rw-r--r-- 10.0 KB
LGPL-2.1 -rw-r--r-- 26.2 KB
Makefile -rw-r--r-- 103.4 KB
README.md -rw-r--r-- 3.2 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.4 KB
add-interactive.h -rw-r--r-- 965 bytes
add-patch.c -rw-r--r-- 50.1 KB
advice.c -rw-r--r-- 7.7 KB
advice.h -rw-r--r-- 2.1 KB
alias.c -rw-r--r-- 2.3 KB
alias.h -rw-r--r-- 310 bytes
alloc.c -rw-r--r-- 3.2 KB
alloc.h -rw-r--r-- 527 bytes
apply.c -rw-r--r-- 131.8 KB
apply.h -rw-r--r-- 5.3 KB
archive-tar.c -rw-r--r-- 12.3 KB
archive-zip.c -rw-r--r-- 17.1 KB
archive.c -rw-r--r-- 17.8 KB
archive.h -rw-r--r-- 1.5 KB
attr.c -rw-r--r-- 29.6 KB
attr.h -rw-r--r-- 6.6 KB
banned.h -rw-r--r-- 1.1 KB
base85.c -rw-r--r-- 2.8 KB
bisect.c -rw-r--r-- 30.0 KB
bisect.h -rw-r--r-- 2.2 KB
blame.c -rw-r--r-- 83.4 KB
blame.h -rw-r--r-- 5.6 KB
blob.c -rw-r--r-- 461 bytes
blob.h -rw-r--r-- 688 bytes
bloom.c -rw-r--r-- 8.0 KB
bloom.h -rw-r--r-- 3.0 KB
branch.c -rw-r--r-- 10.1 KB
branch.h -rw-r--r-- 3.0 KB
builtin.h -rw-r--r-- 12.3 KB
bulk-checkin.c -rw-r--r-- 7.8 KB
bulk-checkin.h -rw-r--r-- 323 bytes
bundle.c -rw-r--r-- 15.1 KB
bundle.h -rw-r--r-- 1.4 KB
cache-tree.c -rw-r--r-- 23.2 KB
cache-tree.h -rw-r--r-- 2.2 KB
cache.h -rw-r--r-- 65.9 KB
cbtree.c -rw-r--r-- 4.2 KB
cbtree.h -rw-r--r-- 1.6 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.1 KB
chunk-format.h -rw-r--r-- 1.9 KB
color.c -rw-r--r-- 9.6 KB
color.h -rw-r--r-- 4.8 KB
column.c -rw-r--r-- 9.4 KB
column.h -rw-r--r-- 1.4 KB
combine-diff.c -rw-r--r-- 42.9 KB
command-list.txt -rw-r--r-- 11.5 KB
commit-graph.c -rw-r--r-- 68.9 KB
commit-graph.h -rw-r--r-- 5.4 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-- 42.3 KB
commit.h -rw-r--r-- 13.4 KB
common-main.c -rw-r--r-- 1.3 KB
config.c -rw-r--r-- 85.7 KB
config.h -rw-r--r-- 22.2 KB
config.mak.dev -rw-r--r-- 1.8 KB
config.mak.in -rw-r--r-- 540 bytes
config.mak.uname -rw-r--r-- 24.3 KB
configure.ac -rw-r--r-- 37.5 KB
connect.c -rw-r--r-- 35.9 KB
connect.h -rw-r--r-- 1.2 KB
connected.c -rw-r--r-- 4.3 KB
connected.h -rw-r--r-- 1.7 KB
convert.c -rw-r--r-- 49.3 KB
convert.h -rw-r--r-- 7.2 KB
copy.c -rw-r--r-- 1.3 KB
credential.c -rw-r--r-- 12.1 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.5 KB
decorate.c -rw-r--r-- 1.7 KB
decorate.h -rw-r--r-- 1.4 KB
delta-islands.c -rw-r--r-- 11.7 KB
delta-islands.h -rw-r--r-- 572 bytes
delta.h -rw-r--r-- 3.3 KB
detect-compiler -rwxr-xr-x 981 bytes
diff-delta.c -rw-r--r-- 15.5 KB
diff-lib.c -rw-r--r-- 18.7 KB
diff-merges.c -rw-r--r-- 3.9 KB
diff-merges.h -rw-r--r-- 687 bytes
diff-no-index.c -rw-r--r-- 7.2 KB
diff.c -rw-r--r-- 193.7 KB
diff.h -rw-r--r-- 21.4 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.5 KB
dir-iterator.c -rw-r--r-- 5.8 KB
dir-iterator.h -rw-r--r-- 4.3 KB
dir.c -rw-r--r-- 102.8 KB
dir.h -rw-r--r-- 17.3 KB
editor.c -rw-r--r-- 3.0 KB
entry.c -rw-r--r-- 14.7 KB
entry.h -rw-r--r-- 1.9 KB
environment.c -rw-r--r-- 10.6 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-- 599 bytes
fetch-negotiator.h -rw-r--r-- 1.6 KB
fetch-pack.c -rw-r--r-- 58.3 KB
fetch-pack.h -rw-r--r-- 3.1 KB
fmt-merge-msg.c -rw-r--r-- 17.9 KB
fmt-merge-msg.h -rw-r--r-- 420 bytes
fsck.c -rw-r--r-- 35.2 KB
fsck.h -rw-r--r-- 7.1 KB
fsmonitor.c -rw-r--r-- 13.0 KB
fsmonitor.h -rw-r--r-- 2.9 KB
fuzz-commit-graph.c -rw-r--r-- 465 bytes
fuzz-pack-headers.c -rw-r--r-- 309 bytes
fuzz-pack-idx.c -rw-r--r-- 277 bytes
generate-cmdlist.sh -rwxr-xr-x 1.5 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.3 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 2.1 KB
git-compat-util.h -rw-r--r-- 38.7 KB
git-curl-compat.h -rw-r--r-- 3.8 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.3 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.8 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 944 bytes
git-mergetool--lib.sh -rw-r--r-- 9.5 KB
git-mergetool.sh -rwxr-xr-x 11.3 KB
git-p4.py -rwxr-xr-x 165.3 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 60.2 KB
git-sh-i18n.sh -rw-r--r-- 1.7 KB
git-sh-setup.sh -rw-r--r-- 8.7 KB
git-submodule.sh -rwxr-xr-x 13.8 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.3 KB
git.rc -rw-r--r-- 635 bytes
gpg-interface.c -rw-r--r-- 25.8 KB
gpg-interface.h -rw-r--r-- 2.0 KB
graph.c -rw-r--r-- 40.0 KB
graph.h -rw-r--r-- 8.6 KB
grep.c -rw-r--r-- 49.1 KB
grep.h -rw-r--r-- 5.9 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.2 KB
hashmap.c -rw-r--r-- 8.4 KB
hashmap.h -rw-r--r-- 19.8 KB
help.c -rw-r--r-- 19.3 KB
help.h -rw-r--r-- 3.2 KB
hex.c -rw-r--r-- 4.4 KB
hook.c -rw-r--r-- 974 bytes
hook.h -rw-r--r-- 370 bytes
http-backend.c -rw-r--r-- 19.0 KB
http-fetch.c -rw-r--r-- 3.9 KB
http-push.c -rw-r--r-- 49.8 KB
http-walker.c -rw-r--r-- 14.9 KB
http.c -rw-r--r-- 64.9 KB
http.h -rw-r--r-- 6.7 KB
ident.c -rw-r--r-- 15.9 KB
imap-send.c -rw-r--r-- 36.9 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-- 33.0 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-- 11.0 KB
list-objects-filter-options.h -rw-r--r-- 4.0 KB
list-objects-filter.c -rw-r--r-- 21.8 KB
list-objects-filter.h -rw-r--r-- 3.2 KB
list-objects.c -rw-r--r-- 12.0 KB
list-objects.h -rw-r--r-- 762 bytes
list.h -rw-r--r-- 5.6 KB
ll-merge.c -rw-r--r-- 10.9 KB
ll-merge.h -rw-r--r-- 3.0 KB
lockfile.c -rw-r--r-- 5.6 KB
lockfile.h -rw-r--r-- 11.3 KB
log-tree.c -rw-r--r-- 28.2 KB
log-tree.h -rw-r--r-- 1.4 KB
ls-refs.c -rw-r--r-- 4.9 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.7 KB
mailmap.h -rw-r--r-- 272 bytes
match-trees.c -rw-r--r-- 8.5 KB
mem-pool.c -rw-r--r-- 3.5 KB
mem-pool.h -rw-r--r-- 1.6 KB
merge-blobs.c -rw-r--r-- 2.0 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-- 149.0 KB
merge-ort.h -rw-r--r-- 2.3 KB
merge-recursive.c -rw-r--r-- 118.4 KB
merge-recursive.h -rw-r--r-- 3.6 KB
merge.c -rw-r--r-- 2.7 KB
mergesort.c -rw-r--r-- 2.0 KB
mergesort.h -rw-r--r-- 574 bytes
midx.c -rw-r--r-- 49.7 KB
midx.h -rw-r--r-- 2.8 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.6 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.4 KB
notes.h -rw-r--r-- 12.6 KB
object-file.c -rw-r--r-- 63.0 KB
object-name.c -rw-r--r-- 48.2 KB
object-store.h -rw-r--r-- 15.8 KB
object.c -rw-r--r-- 14.1 KB
object.h -rw-r--r-- 7.1 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-- 17.1 KB
pack-bitmap.c -rw-r--r-- 50.1 KB
pack-bitmap.h -rw-r--r-- 3.5 KB
pack-check.c -rw-r--r-- 5.2 KB
pack-objects.c -rw-r--r-- 4.9 KB
pack-objects.h -rw-r--r-- 8.3 KB
pack-revindex.c -rw-r--r-- 12.3 KB
pack-revindex.h -rw-r--r-- 4.3 KB
pack-write.c -rw-r--r-- 13.9 KB
pack.h -rw-r--r-- 3.9 KB
packfile.c -rw-r--r-- 57.8 KB
packfile.h -rw-r--r-- 7.1 KB
pager.c -rw-r--r-- 5.2 KB
parallel-checkout.c -rw-r--r-- 18.2 KB
parallel-checkout.h -rw-r--r-- 3.2 KB
parse-options-cb.c -rw-r--r-- 6.4 KB
parse-options.c -rw-r--r-- 27.9 KB
parse-options.h -rw-r--r-- 13.0 KB
patch-delta.c -rw-r--r-- 2.4 KB
patch-ids.c -rw-r--r-- 3.7 KB
patch-ids.h -rw-r--r-- 1.2 KB
path.c -rw-r--r-- 38.7 KB
path.h -rw-r--r-- 5.7 KB
pathspec.c -rw-r--r-- 18.7 KB
pathspec.h -rw-r--r-- 5.5 KB
pkt-line.c -rw-r--r-- 14.5 KB
pkt-line.h -rw-r--r-- 8.6 KB
preload-index.c -rw-r--r-- 4.0 KB
pretty.c -rw-r--r-- 54.8 KB
pretty.h -rw-r--r-- 4.5 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.2 KB
progress.h -rw-r--r-- 768 bytes
promisor-remote.c -rw-r--r-- 6.3 KB
promisor-remote.h -rw-r--r-- 1.4 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-- 5.4 KB
reachable.h -rw-r--r-- 304 bytes
read-cache.c -rw-r--r-- 100.7 KB
rebase-interactive.c -rw-r--r-- 7.2 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.3 KB
ref-filter.h -rw-r--r-- 4.8 KB
reflog-walk.c -rw-r--r-- 8.1 KB
reflog-walk.h -rw-r--r-- 885 bytes
refs.c -rw-r--r-- 60.9 KB
refs.h -rw-r--r-- 32.0 KB
refspec.c -rw-r--r-- 6.4 KB
refspec.h -rw-r--r-- 2.4 KB
remote-curl.c -rw-r--r-- 40.2 KB
remote.c -rw-r--r-- 65.7 KB
remote.h -rw-r--r-- 10.7 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.0 KB
repository.c -rw-r--r-- 7.2 KB
repository.h -rw-r--r-- 5.9 KB
rerere.c -rw-r--r-- 31.9 KB
rerere.h -rw-r--r-- 1.4 KB
reset.c -rw-r--r-- 4.1 KB
reset.h -rw-r--r-- 565 bytes
resolve-undo.c -rw-r--r-- 4.5 KB
resolve-undo.h -rw-r--r-- 581 bytes
revision.c -rw-r--r-- 115.0 KB
revision.h -rw-r--r-- 12.5 KB
run-command.c -rw-r--r-- 44.0 KB
run-command.h -rw-r--r-- 19.6 KB
send-pack.c -rw-r--r-- 19.4 KB
send-pack.h -rw-r--r-- 893 bytes
sequencer.c -rw-r--r-- 164.4 KB
sequencer.h -rw-r--r-- 7.4 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-- 42.2 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-- 618 bytes
shallow.c -rw-r--r-- 21.8 KB
shallow.h -rw-r--r-- 2.6 KB
shell.c -rw-r--r-- 5.3 KB
shortlog.h -rw-r--r-- 627 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-- 9.6 KB
sparse-index.h -rw-r--r-- 826 bytes
split-index.c -rw-r--r-- 13.6 KB
split-index.h -rw-r--r-- 1.2 KB
stable-qsort.c -rw-r--r-- 1.2 KB
strbuf.c -rw-r--r-- 25.4 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.0 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-- 21.3 KB
submodule-config.h -rw-r--r-- 3.4 KB
submodule.c -rw-r--r-- 61.9 KB
submodule.h -rw-r--r-- 6.1 KB
symlinks.c -rw-r--r-- 9.7 KB
tag.c -rw-r--r-- 5.5 KB
tag.h -rw-r--r-- 727 bytes
tar.h -rw-r--r-- 693 bytes
tempfile.c -rw-r--r-- 8.3 KB
tempfile.h -rw-r--r-- 9.4 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-- 6.5 KB
tmp-objdir.h -rw-r--r-- 1.5 KB
trace.c -rw-r--r-- 11.9 KB
trace.h -rw-r--r-- 8.3 KB
trace2.c -rw-r--r-- 19.0 KB
trace2.h -rw-r--r-- 19.3 KB
trailer.c -rw-r--r-- 31.0 KB
trailer.h -rw-r--r-- 3.8 KB
transport-helper.c -rw-r--r-- 41.8 KB
transport-internal.h -rw-r--r-- 2.2 KB
transport.c -rw-r--r-- 40.6 KB
transport.h -rw-r--r-- 9.3 KB
tree-diff.c -rw-r--r-- 18.0 KB
tree-walk.c -rw-r--r-- 32.3 KB
tree-walk.h -rw-r--r-- 6.7 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-- 74.6 KB
unpack-trees.h -rw-r--r-- 3.4 KB
upload-pack.c -rw-r--r-- 45.8 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.4 KB
urlmatch.h -rw-r--r-- 2.7 KB
usage.c -rw-r--r-- 6.5 KB
userdiff.c -rw-r--r-- 14.6 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-- 19.6 KB
worktree.h -rw-r--r-- 5.9 KB
wrap-for-bin.sh -rw-r--r-- 946 bytes
wrapper.c -rw-r--r-- 14.8 KB
write-or-die.c -rw-r--r-- 1.8 KB
ws.c -rw-r--r-- 9.4 KB
wt-status.c -rw-r--r-- 71.5 KB
wt-status.h -rw-r--r-- 4.8 KB
xdiff-interface.c -rw-r--r-- 7.5 KB
xdiff-interface.h -rw-r--r-- 2.7 KB
zlib.c -rw-r--r-- 6.1 KB

README.md

back to top