https://github.com/git/git
Revision 2c8ee1f53c7048aa391ac810306bf4cb8e15f2bc authored by Jeff King on 16 November 2018, 09:43:59 UTC, committed by Junio C Hamano on 17 November 2018, 07:05:49 UTC
When writing a bundle to a file, the bundle code actually creates "your.bundle.lock" using our lockfile interface. We feed that output descriptor to a child git-pack-objects via run-command, which has the quirk that it closes the output descriptor in the parent. To avoid confusing the lockfile code (which still thinks the descriptor is valid), we dup() it, and operate on the duplicate. However, this has a confusing side effect: after the dup() but before we call pack-objects, we have _two_ descriptors open to the lockfile. If we call die() during that time, the lockfile code will try to clean up the partially-written file. It knows to close() the file before unlinking, since on some platforms (i.e., Windows) the open file would block the deletion. But it doesn't know about the duplicate descriptor. On Windows, triggering an error at the right part of the code will result in the cleanup failing and the lockfile being left in the filesystem. We can solve this by moving the dup() much closer to start_command(), shrinking the window in which we have the second descriptor open. It's easy to place this in such a way that no die() is possible. We could still die due to a signal in the exact wrong moment, but we already tolerate races there (e.g., a signal could come before we manage to put the file on the cleanup list in the first place). As a bonus, this shields create_bundle() itself from the duplicate-fd trick, and we can simplify its error handling (note that the lock rollback now happens unconditionally, but that's OK; it's a noop if we didn't open the lock in the first place). The included test uses an empty bundle to cause a failure at the right spot in the code, because that's easy to trigger (the other likely errors are write() problems like ENOSPC). Note that it would already pass on non-Windows systems (because they are happy to unlink an already-open file). Based-on-a-patch-by: Gaël Lhez <gael.lhez@gmail.com> Signed-off-by: Jeff King <peff@peff.net> Tested-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent cae598d
Tip revision: 2c8ee1f53c7048aa391ac810306bf4cb8e15f2bc authored by Jeff King on 16 November 2018, 09:43:59 UTC
bundle: dup() output descriptor closer to point-of-use
bundle: dup() output descriptor closer to point-of-use
Tip revision: 2c8ee1f
File | Mode | Size |
---|---|---|
.github | ||
Documentation | ||
block-sha1 | ||
builtin | ||
ci | ||
compat | ||
contrib | ||
ewah | ||
git-gui | ||
gitk-git | ||
gitweb | ||
mergetools | ||
negotiator | ||
perl | ||
po | ||
ppc | ||
refs | ||
sha1collisiondetection @ 232357e | ||
sha1dc | ||
t | ||
templates | ||
vcs-svn | ||
xdiff | ||
.clang-format | -rw-r--r-- | 4.5 KB |
.gitattributes | -rw-r--r-- | 315 bytes |
.gitignore | -rw-r--r-- | 3.2 KB |
.gitmodules | -rw-r--r-- | 153 bytes |
.mailmap | -rw-r--r-- | 15.0 KB |
.travis.yml | -rw-r--r-- | 1.4 KB |
.tsan-suppressions | -rw-r--r-- | 411 bytes |
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-- | 92.4 KB |
README.md | -rw-r--r-- | 3.1 KB |
RelNotes | l--------- | 33 bytes |
abspath.c | -rw-r--r-- | 6.8 KB |
aclocal.m4 | -rw-r--r-- | 1.4 KB |
advice.c | -rw-r--r-- | 5.7 KB |
advice.h | -rw-r--r-- | 1.2 KB |
alias.c | -rw-r--r-- | 2.1 KB |
alias.h | -rw-r--r-- | 318 bytes |
alloc.c | -rw-r--r-- | 3.1 KB |
alloc.h | -rw-r--r-- | 541 bytes |
apply.c | -rw-r--r-- | 130.0 KB |
apply.h | -rw-r--r-- | 4.0 KB |
archive-tar.c | -rw-r--r-- | 12.4 KB |
archive-zip.c | -rw-r--r-- | 17.0 KB |
archive.c | -rw-r--r-- | 15.1 KB |
archive.h | -rw-r--r-- | 1.5 KB |
argv-array.c | -rw-r--r-- | 2.2 KB |
argv-array.h | -rw-r--r-- | 823 bytes |
attr.c | -rw-r--r-- | 28.7 KB |
attr.h | -rw-r--r-- | 2.2 KB |
banned.h | -rw-r--r-- | 741 bytes |
base85.c | -rw-r--r-- | 2.8 KB |
bisect.c | -rw-r--r-- | 26.7 KB |
bisect.h | -rw-r--r-- | 1.1 KB |
blame.c | -rw-r--r-- | 50.7 KB |
blame.h | -rw-r--r-- | 5.3 KB |
blob.c | -rw-r--r-- | 485 bytes |
blob.h | -rw-r--r-- | 688 bytes |
branch.c | -rw-r--r-- | 10.0 KB |
branch.h | -rw-r--r-- | 2.8 KB |
builtin.h | -rw-r--r-- | 12.5 KB |
bulk-checkin.c | -rw-r--r-- | 7.3 KB |
bulk-checkin.h | -rw-r--r-- | 344 bytes |
bundle.c | -rw-r--r-- | 12.4 KB |
bundle.h | -rw-r--r-- | 725 bytes |
cache-tree.c | -rw-r--r-- | 17.1 KB |
cache-tree.h | -rw-r--r-- | 1.9 KB |
cache.h | -rw-r--r-- | 60.9 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 |
check-racy.c | -rw-r--r-- | 523 bytes |
check_bindir | -rwxr-xr-x | 374 bytes |
checkout.c | -rw-r--r-- | 1.9 KB |
checkout.h | -rw-r--r-- | 376 bytes |
color.c | -rw-r--r-- | 8.9 KB |
color.h | -rw-r--r-- | 4.8 KB |
column.c | -rw-r--r-- | 9.7 KB |
column.h | -rw-r--r-- | 1.5 KB |
combine-diff.c | -rw-r--r-- | 40.3 KB |
command-list.txt | -rw-r--r-- | 10.9 KB |
commit-graph.c | -rw-r--r-- | 27.3 KB |
commit-graph.h | -rw-r--r-- | 1.7 KB |
commit-slab-decl.h | -rw-r--r-- | 1.3 KB |
commit-slab-impl.h | -rw-r--r-- | 2.7 KB |
commit-slab.h | -rw-r--r-- | 1.8 KB |
commit.c | -rw-r--r-- | 44.8 KB |
commit.h | -rw-r--r-- | 13.1 KB |
common-main.c | -rw-r--r-- | 1.1 KB |
config.c | -rw-r--r-- | 78.6 KB |
config.h | -rw-r--r-- | 10.8 KB |
config.mak.dev | -rw-r--r-- | 1.4 KB |
config.mak.in | -rw-r--r-- | 540 bytes |
config.mak.uname | -rw-r--r-- | 17.2 KB |
configure.ac | -rw-r--r-- | 36.8 KB |
connect.c | -rw-r--r-- | 32.0 KB |
connect.h | -rw-r--r-- | 961 bytes |
connected.c | -rw-r--r-- | 3.2 KB |
connected.h | -rw-r--r-- | 1.7 KB |
convert.c | -rw-r--r-- | 48.2 KB |
convert.h | -rw-r--r-- | 4.0 KB |
copy.c | -rw-r--r-- | 1.3 KB |
credential-cache--daemon.c | -rw-r--r-- | 6.9 KB |
credential-cache.c | -rw-r--r-- | 3.2 KB |
credential-store.c | -rw-r--r-- | 5.0 KB |
credential.c | -rw-r--r-- | 7.9 KB |
credential.h | -rw-r--r-- | 833 bytes |
csum-file.c | -rw-r--r-- | 4.1 KB |
csum-file.h | -rw-r--r-- | 1.4 KB |
ctype.c | -rw-r--r-- | 2.6 KB |
daemon.c | -rw-r--r-- | 34.7 KB |
date.c | -rw-r--r-- | 27.8 KB |
decorate.c | -rw-r--r-- | 1.8 KB |
decorate.h | -rw-r--r-- | 1.4 KB |
delta.h | -rw-r--r-- | 3.4 KB |
detect-compiler | -rwxr-xr-x | 1016 bytes |
diff-delta.c | -rw-r--r-- | 15.5 KB |
diff-lib.c | -rw-r--r-- | 15.0 KB |
diff-no-index.c | -rw-r--r-- | 6.8 KB |
diff.c | -rw-r--r-- | 173.3 KB |
diff.h | -rw-r--r-- | 14.1 KB |
diffcore-break.c | -rw-r--r-- | 9.0 KB |
diffcore-delta.c | -rw-r--r-- | 5.4 KB |
diffcore-order.c | -rw-r--r-- | 2.4 KB |
diffcore-pickaxe.c | -rw-r--r-- | 6.3 KB |
diffcore-rename.c | -rw-r--r-- | 17.6 KB |
diffcore.h | -rw-r--r-- | 4.7 KB |
dir-iterator.c | -rw-r--r-- | 4.8 KB |
dir-iterator.h | -rw-r--r-- | 2.7 KB |
dir.c | -rw-r--r-- | 81.7 KB |
dir.h | -rw-r--r-- | 11.9 KB |
editor.c | -rw-r--r-- | 2.3 KB |
entry.c | -rw-r--r-- | 12.6 KB |
environment.c | -rw-r--r-- | 10.8 KB |
exec-cmd.c | -rw-r--r-- | 8.0 KB |
exec-cmd.h | -rw-r--r-- | 539 bytes |
fast-import.c | -rw-r--r-- | 88.8 KB |
fetch-negotiator.c | -rw-r--r-- | 545 bytes |
fetch-negotiator.h | -rw-r--r-- | 1.6 KB |
fetch-object.c | -rw-r--r-- | 1.2 KB |
fetch-object.h | -rw-r--r-- | 250 bytes |
fetch-pack.c | -rw-r--r-- | 44.0 KB |
fetch-pack.h | -rw-r--r-- | 2.5 KB |
fmt-merge-msg.h | -rw-r--r-- | 187 bytes |
fsck.c | -rw-r--r-- | 29.1 KB |
fsck.h | -rw-r--r-- | 2.0 KB |
fsmonitor.c | -rw-r--r-- | 7.1 KB |
fsmonitor.h | -rw-r--r-- | 2.3 KB |
generate-cmdlist.sh | -rwxr-xr-x | 1.6 KB |
gettext.c | -rw-r--r-- | 5.3 KB |
gettext.h | -rw-r--r-- | 2.2 KB |
git-add--interactive.perl | -rwxr-xr-x | 43.0 KB |
git-archimport.perl | -rwxr-xr-x | 36.1 KB |
git-bisect.sh | -rwxr-xr-x | 14.1 KB |
git-compat-util.h | -rw-r--r-- | 33.4 KB |
git-cvsexportcommit.perl | -rwxr-xr-x | 12.6 KB |
git-cvsimport.perl | -rwxr-xr-x | 31.3 KB |
git-cvsserver.perl | -rwxr-xr-x | 158.9 KB |
git-difftool--helper.sh | -rwxr-xr-x | 2.2 KB |
git-filter-branch.sh | -rwxr-xr-x | 15.4 KB |
git-instaweb.sh | -rwxr-xr-x | 18.1 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-- | 8.7 KB |
git-mergetool.sh | -rwxr-xr-x | 10.1 KB |
git-p4.py | -rwxr-xr-x | 153.0 KB |
git-parse-remote.sh | -rw-r--r-- | 2.6 KB |
git-quiltimport.sh | -rwxr-xr-x | 3.5 KB |
git-rebase--am.sh | -rw-r--r-- | 1.6 KB |
git-rebase--interactive.sh | -rw-r--r-- | 7.2 KB |
git-rebase--merge.sh | -rw-r--r-- | 3.5 KB |
git-rebase--preserve-merges.sh | -rw-r--r-- | 27.2 KB |
git-rebase.sh | -rwxr-xr-x | 19.4 KB |
git-remote-testgit.sh | -rwxr-xr-x | 2.9 KB |
git-request-pull.sh | -rwxr-xr-x | 3.6 KB |
git-send-email.perl | -rwxr-xr-x | 55.2 KB |
git-sh-i18n.sh | -rw-r--r-- | 2.3 KB |
git-sh-setup.sh | -rw-r--r-- | 9.1 KB |
git-stash.sh | -rwxr-xr-x | 15.3 KB |
git-submodule.sh | -rwxr-xr-x | 22.6 KB |
git-svn.perl | -rwxr-xr-x | 62.9 KB |
git-web--browse.sh | -rwxr-xr-x | 4.3 KB |
git.c | -rw-r--r-- | 22.6 KB |
git.rc | -rw-r--r-- | 592 bytes |
gpg-interface.c | -rw-r--r-- | 7.4 KB |
gpg-interface.h | -rw-r--r-- | 1.8 KB |
graph.c | -rw-r--r-- | 36.3 KB |
graph.h | -rw-r--r-- | 4.9 KB |
grep.c | -rw-r--r-- | 53.0 KB |
grep.h | -rw-r--r-- | 5.6 KB |
hash.h | -rw-r--r-- | 2.9 KB |
hashmap.c | -rw-r--r-- | 7.2 KB |
hashmap.h | -rw-r--r-- | 14.2 KB |
help.c | -rw-r--r-- | 18.5 KB |
help.h | -rw-r--r-- | 3.2 KB |
hex.c | -rw-r--r-- | 2.9 KB |
http-backend.c | -rw-r--r-- | 18.7 KB |
http-fetch.c | -rw-r--r-- | 1.9 KB |
http-push.c | -rw-r--r-- | 49.9 KB |
http-walker.c | -rw-r--r-- | 15.1 KB |
http.c | -rw-r--r-- | 62.3 KB |
http.h | -rw-r--r-- | 6.7 KB |
ident.c | -rw-r--r-- | 12.5 KB |
imap-send.c | -rw-r--r-- | 36.6 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.1 KB |
khash.h | -rw-r--r-- | 12.7 KB |
kwset.c | -rw-r--r-- | 20.5 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-- | 30.9 KB |
line-log.h | -rw-r--r-- | 1.8 KB |
line-range.c | -rw-r--r-- | 6.5 KB |
line-range.h | -rw-r--r-- | 1.3 KB |
linear-assignment.c | -rw-r--r-- | 4.0 KB |
linear-assignment.h | -rw-r--r-- | 736 bytes |
list-objects-filter-options.c | -rw-r--r-- | 4.2 KB |
list-objects-filter-options.h | -rw-r--r-- | 2.1 KB |
list-objects-filter.c | -rw-r--r-- | 10.8 KB |
list-objects-filter.h | -rw-r--r-- | 2.6 KB |
list-objects.c | -rw-r--r-- | 9.5 KB |
list-objects.h | -rw-r--r-- | 718 bytes |
list.h | -rw-r--r-- | 5.6 KB |
ll-merge.c | -rw-r--r-- | 10.5 KB |
ll-merge.h | -rw-r--r-- | 593 bytes |
lockfile.c | -rw-r--r-- | 5.6 KB |
lockfile.h | -rw-r--r-- | 10.5 KB |
log-tree.c | -rw-r--r-- | 25.2 KB |
log-tree.h | -rw-r--r-- | 1.4 KB |
ls-refs.c | -rw-r--r-- | 2.1 KB |
ls-refs.h | -rw-r--r-- | 224 bytes |
mailinfo.c | -rw-r--r-- | 26.4 KB |
mailinfo.h | -rw-r--r-- | 1012 bytes |
mailmap.c | -rw-r--r-- | 8.9 KB |
mailmap.h | -rw-r--r-- | 292 bytes |
match-trees.c | -rw-r--r-- | 8.2 KB |
mem-pool.c | -rw-r--r-- | 3.1 KB |
mem-pool.h | -rw-r--r-- | 1.4 KB |
merge-blobs.c | -rw-r--r-- | 1.9 KB |
merge-blobs.h | -rw-r--r-- | 194 bytes |
merge-recursive.c | -rw-r--r-- | 105.6 KB |
merge-recursive.h | -rw-r--r-- | 2.8 KB |
merge.c | -rw-r--r-- | 2.7 KB |
mergesort.c | -rw-r--r-- | 1.5 KB |
mergesort.h | -rw-r--r-- | 574 bytes |
name-hash.c | -rw-r--r-- | 18.5 KB |
notes-cache.c | -rw-r--r-- | 2.2 KB |
notes-cache.h | -rw-r--r-- | 498 bytes |
notes-merge.c | -rw-r--r-- | 22.5 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.4 KB |
notes.c | -rw-r--r-- | 36.2 KB |
notes.h | -rw-r--r-- | 11.8 KB |
object-store.h | -rw-r--r-- | 10.8 KB |
object.c | -rw-r--r-- | 13.3 KB |
object.h | -rw-r--r-- | 6.3 KB |
oidmap.c | -rw-r--r-- | 1.4 KB |
oidmap.h | -rw-r--r-- | 2.2 KB |
oidset.c | -rw-r--r-- | 767 bytes |
oidset.h | -rw-r--r-- | 2.0 KB |
pack-bitmap-write.c | -rw-r--r-- | 12.6 KB |
pack-bitmap.c | -rw-r--r-- | 26.7 KB |
pack-bitmap.h | -rw-r--r-- | 2.0 KB |
pack-check.c | -rw-r--r-- | 5.6 KB |
pack-objects.c | -rw-r--r-- | 4.0 KB |
pack-objects.h | -rw-r--r-- | 10.4 KB |
pack-revindex.c | -rw-r--r-- | 5.6 KB |
pack-revindex.h | -rw-r--r-- | 323 bytes |
pack-write.c | -rw-r--r-- | 10.7 KB |
pack.h | -rw-r--r-- | 3.4 KB |
packfile.c | -rw-r--r-- | 50.6 KB |
packfile.h | -rw-r--r-- | 5.6 KB |
pager.c | -rw-r--r-- | 4.5 KB |
parse-options-cb.c | -rw-r--r-- | 5.3 KB |
parse-options.c | -rw-r--r-- | 19.7 KB |
parse-options.h | -rw-r--r-- | 10.7 KB |
patch-delta.c | -rw-r--r-- | 2.2 KB |
patch-ids.c | -rw-r--r-- | 3.2 KB |
patch-ids.h | -rw-r--r-- | 659 bytes |
path.c | -rw-r--r-- | 34.1 KB |
path.h | -rw-r--r-- | 5.8 KB |
pathspec.c | -rw-r--r-- | 16.2 KB |
pathspec.h | -rw-r--r-- | 3.2 KB |
pkt-line.c | -rw-r--r-- | 10.9 KB |
pkt-line.h | -rw-r--r-- | 6.4 KB |
preload-index.c | -rw-r--r-- | 2.8 KB |
pretty.c | -rw-r--r-- | 45.4 KB |
pretty.h | -rw-r--r-- | 3.5 KB |
prio-queue.c | -rw-r--r-- | 1.8 KB |
prio-queue.h | -rw-r--r-- | 1.5 KB |
progress.c | -rw-r--r-- | 6.1 KB |
progress.h | -rw-r--r-- | 455 bytes |
prompt.c | -rw-r--r-- | 1.4 KB |
prompt.h | -rw-r--r-- | 168 bytes |
protocol.c | -rw-r--r-- | 2.1 KB |
protocol.h | -rw-r--r-- | 1.1 KB |
quote.c | -rw-r--r-- | 11.2 KB |
quote.h | -rw-r--r-- | 3.2 KB |
range-diff.c | -rw-r--r-- | 10.9 KB |
range-diff.h | -rw-r--r-- | 188 bytes |
reachable.c | -rw-r--r-- | 4.9 KB |
reachable.h | -rw-r--r-- | 318 bytes |
read-cache.c | -rw-r--r-- | 79.3 KB |
ref-filter.c | -rw-r--r-- | 66.7 KB |
ref-filter.h | -rw-r--r-- | 4.5 KB |
reflog-walk.c | -rw-r--r-- | 8.2 KB |
reflog-walk.h | -rw-r--r-- | 933 bytes |
refs.c | -rw-r--r-- | 53.4 KB |
refs.h | -rw-r--r-- | 29.2 KB |
refspec.c | -rw-r--r-- | 4.9 KB |
refspec.h | -rw-r--r-- | 1.3 KB |
remote-curl.c | -rw-r--r-- | 35.2 KB |
remote-testsvn.c | -rw-r--r-- | 8.2 KB |
remote.c | -rw-r--r-- | 55.8 KB |
remote.h | -rw-r--r-- | 8.3 KB |
replace-object.c | -rw-r--r-- | 2.0 KB |
replace-object.h | -rw-r--r-- | 1.0 KB |
repository.c | -rw-r--r-- | 6.1 KB |
repository.h | -rw-r--r-- | 3.6 KB |
rerere.c | -rw-r--r-- | 31.1 KB |
rerere.h | -rw-r--r-- | 1.1 KB |
resolve-undo.c | -rw-r--r-- | 4.4 KB |
resolve-undo.h | -rw-r--r-- | 630 bytes |
revision.c | -rw-r--r-- | 96.4 KB |
revision.h | -rw-r--r-- | 8.1 KB |
run-command.c | -rw-r--r-- | 38.9 KB |
run-command.h | -rw-r--r-- | 7.6 KB |
send-pack.c | -rw-r--r-- | 15.8 KB |
send-pack.h | -rw-r--r-- | 893 bytes |
sequencer.c | -rw-r--r-- | 131.0 KB |
sequencer.h | -rw-r--r-- | 3.0 KB |
serve.c | -rw-r--r-- | 6.2 KB |
serve.h | -rw-r--r-- | 350 bytes |
server-info.c | -rw-r--r-- | 5.8 KB |
setup.c | -rw-r--r-- | 32.9 KB |
sh-i18n--envsubst.c | -rw-r--r-- | 10.1 KB |
sha1-array.c | -rw-r--r-- | 1.5 KB |
sha1-array.h | -rw-r--r-- | 682 bytes |
sha1-file.c | -rw-r--r-- | 56.4 KB |
sha1-lookup.c | -rw-r--r-- | 3.1 KB |
sha1-lookup.h | -rw-r--r-- | 1.3 KB |
sha1-name.c | -rw-r--r-- | 43.3 KB |
sha1dc_git.c | -rw-r--r-- | 855 bytes |
sha1dc_git.h | -rw-r--r-- | 618 bytes |
shallow.c | -rw-r--r-- | 20.6 KB |
shell.c | -rw-r--r-- | 4.5 KB |
shortlog.h | -rw-r--r-- | 508 bytes |
sideband.c | -rw-r--r-- | 5.8 KB |
sideband.h | -rw-r--r-- | 259 bytes |
sigchain.c | -rw-r--r-- | 1.1 KB |
sigchain.h | -rw-r--r-- | 247 bytes |
split-index.c | -rw-r--r-- | 10.6 KB |
split-index.h | -rw-r--r-- | 1.2 KB |
strbuf.c | -rw-r--r-- | 21.0 KB |
strbuf.h | -rw-r--r-- | 21.6 KB |
streaming.c | -rw-r--r-- | 11.9 KB |
streaming.h | -rw-r--r-- | 510 bytes |
string-list.c | -rw-r--r-- | 7.8 KB |
string-list.h | -rw-r--r-- | 10.1 KB |
sub-process.c | -rw-r--r-- | 5.4 KB |
sub-process.h | -rw-r--r-- | 3.1 KB |
submodule-config.c | -rw-r--r-- | 19.0 KB |
submodule-config.h | -rw-r--r-- | 2.3 KB |
submodule.c | -rw-r--r-- | 51.3 KB |
submodule.h | -rw-r--r-- | 5.2 KB |
symlinks.c | -rw-r--r-- | 9.3 KB |
tag.c | -rw-r--r-- | 4.9 KB |
tag.h | -rw-r--r-- | 722 bytes |
tar.h | -rw-r--r-- | 644 bytes |
tempfile.c | -rw-r--r-- | 8.3 KB |
tempfile.h | -rw-r--r-- | 9.2 KB |
thread-utils.c | -rw-r--r-- | 1.7 KB |
thread-utils.h | -rw-r--r-- | 241 bytes |
tmp-objdir.c | -rw-r--r-- | 6.5 KB |
tmp-objdir.h | -rw-r--r-- | 1.5 KB |
trace.c | -rw-r--r-- | 10.5 KB |
trace.h | -rw-r--r-- | 4.3 KB |
trailer.c | -rw-r--r-- | 28.8 KB |
trailer.h | -rw-r--r-- | 2.3 KB |
transport-helper.c | -rw-r--r-- | 36.8 KB |
transport-internal.h | -rw-r--r-- | 2.6 KB |
transport.c | -rw-r--r-- | 35.7 KB |
transport.h | -rw-r--r-- | 8.1 KB |
tree-diff.c | -rw-r--r-- | 17.9 KB |
tree-walk.c | -rw-r--r-- | 29.1 KB |
tree-walk.h | -rw-r--r-- | 3.2 KB |
tree.c | -rw-r--r-- | 6.6 KB |
tree.h | -rw-r--r-- | 1.1 KB |
unicode-width.h | -rw-r--r-- | 8.9 KB |
unimplemented.sh | -rw-r--r-- | 101 bytes |
unix-socket.c | -rw-r--r-- | 2.4 KB |
unix-socket.h | -rw-r--r-- | 158 bytes |
unpack-trees.c | -rw-r--r-- | 58.9 KB |
unpack-trees.h | -rw-r--r-- | 2.6 KB |
upload-pack.c | -rw-r--r-- | 37.2 KB |
upload-pack.h | -rw-r--r-- | 513 bytes |
url.c | -rw-r--r-- | 2.4 KB |
url.h | -rw-r--r-- | 508 bytes |
urlmatch.c | -rw-r--r-- | 18.1 KB |
urlmatch.h | -rw-r--r-- | 2.0 KB |
usage.c | -rw-r--r-- | 5.4 KB |
userdiff.c | -rw-r--r-- | 10.0 KB |
userdiff.h | -rw-r--r-- | 780 bytes |
utf8.c | -rw-r--r-- | 18.7 KB |
utf8.h | -rw-r--r-- | 3.5 KB |
varint.c | -rw-r--r-- | 660 bytes |
varint.h | -rw-r--r-- | 168 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.4 KB |
walker.h | -rw-r--r-- | 1.1 KB |
wildmatch.c | -rw-r--r-- | 7.8 KB |
wildmatch.h | -rw-r--r-- | 293 bytes |
worktree.c | -rw-r--r-- | 11.5 KB |
worktree.h | -rw-r--r-- | 3.0 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.5 KB |
ws.c | -rw-r--r-- | 9.4 KB |
wt-status.c | -rw-r--r-- | 65.7 KB |
wt-status.h | -rw-r--r-- | 3.7 KB |
xdiff-interface.c | -rw-r--r-- | 7.3 KB |
xdiff-interface.h | -rw-r--r-- | 1.7 KB |
zlib.c | -rw-r--r-- | 6.1 KB |
Computing file changes ...