https://github.com/git/git
Revision b2732e609785dbaa8f13e6c8d80f8e1eb0baae8f authored by Johannes Schindelin on 17 December 2019, 12:16:34 UTC, committed by Johannes Schindelin on 09 January 2020, 11:54:30 UTC
In 224c7d70fa1 (mingw: only test index entries for backslashes, not tree
entries, 2019-12-31), we relaxed the check for backslashes in tree
entries to check only index entries.

However, the code change was incorrect: it was added to
`add_index_entry_with_check()`, not to `add_index_entry()`, so under
certain circumstances it was possible to side-step the protection.

Besides, the description of that commit purported that all index entries
would be checked when in fact they were only checked when being added to
the index (there are code paths that do not do that, constructing
"transient" index entries).

In any case, it was pointed out in one insightful review at
https://github.com/git-for-windows/git/pull/2437#issuecomment-566771835
that it would be a much better idea to teach `verify_path()` to perform
the check for a backslash. This is safer, even if it comes with two
notable drawbacks:

- `verify_path()` cannot say _what_ is wrong with the path, therefore
  the user will no longer be told that there was a backslash in the
  path, only that the path was invalid.

- The `git apply` command also calls the `verify_path()` function, and
  might have been able to handle Windows-style paths (i.e. with
  backslashes instead of forward slashes). This will no longer be
  possible unless the user (temporarily) sets `core.protectNTFS=false`.

Note that `git add <windows-path>` will _still_ work because
`normalize_path_copy_len()` will convert the backslashes to forward
slashes before hitting the code path that creates an index entry.

The clear advantage is that `verify_path()`'s purpose is to check the
validity of the file name, therefore we naturally tap into all the code
paths that need safeguarding, also implicitly into future code paths.

The benefits of that approach outweigh the downsides, so let's move the
check from `add_index_entry_with_check()` to `verify_path()`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent 7a6a90c
History
Tip revision: b2732e609785dbaa8f13e6c8d80f8e1eb0baae8f authored by Johannes Schindelin on 17 December 2019, 12:16:34 UTC
mingw: safeguard better against backslashes in file names
Tip revision: b2732e6
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
vcs-svn
xdiff
.cirrus.yml -rw-r--r-- 312 bytes
.clang-format -rw-r--r-- 5.0 KB
.editorconfig -rw-r--r-- 284 bytes
.gitattributes -rw-r--r-- 544 bytes
.gitignore -rw-r--r-- 3.4 KB
.gitmodules -rw-r--r-- 153 bytes
.mailmap -rw-r--r-- 16.3 KB
.travis.yml -rw-r--r-- 918 bytes
.tsan-suppressions -rw-r--r-- 411 bytes
CODE_OF_CONDUCT.md -rw-r--r-- 3.9 KB
COPYING -rw-r--r-- 18.3 KB
GIT-VERSION-GEN -rwxr-xr-x 756 bytes
INSTALL -rw-r--r-- 10.0 KB
LGPL-2.1 -rw-r--r-- 26.2 KB
Makefile -rw-r--r-- 100.2 KB
README.md -rw-r--r-- 3.2 KB
RelNotes l--------- 33 bytes
abspath.c -rw-r--r-- 6.8 KB
aclocal.m4 -rw-r--r-- 1.4 KB
add-interactive.c -rw-r--r-- 29.5 KB
add-interactive.h -rw-r--r-- 687 bytes
add-patch.c -rw-r--r-- 36.3 KB
advice.c -rw-r--r-- 6.6 KB
advice.h -rw-r--r-- 1.5 KB
alias.c -rw-r--r-- 2.1 KB
alias.h -rw-r--r-- 310 bytes
alloc.c -rw-r--r-- 3.2 KB
alloc.h -rw-r--r-- 549 bytes
apply.c -rw-r--r-- 130.5 KB
apply.h -rw-r--r-- 5.3 KB
archive-tar.c -rw-r--r-- 12.7 KB
archive-zip.c -rw-r--r-- 17.4 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-- 2.9 KB
attr.c -rw-r--r-- 28.3 KB
attr.h -rw-r--r-- 6.3 KB
azure-pipelines.yml -rw-r--r-- 20.2 KB
banned.h -rw-r--r-- 796 bytes
base85.c -rw-r--r-- 2.8 KB
bisect.c -rw-r--r-- 26.8 KB
bisect.h -rw-r--r-- 1.1 KB
blame.c -rw-r--r-- 80.9 KB
blame.h -rw-r--r-- 5.4 KB
blob.c -rw-r--r-- 464 bytes
blob.h -rw-r--r-- 688 bytes
branch.c -rw-r--r-- 10.0 KB
branch.h -rw-r--r-- 3.0 KB
builtin.h -rw-r--r-- 12.1 KB
bulk-checkin.c -rw-r--r-- 7.3 KB
bulk-checkin.h -rw-r--r-- 323 bytes
bundle.c -rw-r--r-- 12.7 KB
bundle.h -rw-r--r-- 826 bytes
cache-tree.c -rw-r--r-- 20.7 KB
cache-tree.h -rw-r--r-- 2.1 KB
cache.h -rw-r--r-- 66.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
check_bindir -rwxr-xr-x 374 bytes
checkout.c -rw-r--r-- 1.9 KB
checkout.h -rw-r--r-- 369 bytes
color.c -rw-r--r-- 8.9 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.2 KB
command-list.txt -rw-r--r-- 11.2 KB
commit-graph.c -rw-r--r-- 53.7 KB
commit-graph.h -rw-r--r-- 3.4 KB
commit-reach.c -rw-r--r-- 19.1 KB
commit-reach.h -rw-r--r-- 3.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-- 40.3 KB
commit.h -rw-r--r-- 13.8 KB
common-main.c -rw-r--r-- 1.3 KB
config.c -rw-r--r-- 80.5 KB
config.h -rw-r--r-- 21.3 KB
config.mak.dev -rw-r--r-- 1.6 KB
config.mak.in -rw-r--r-- 540 bytes
config.mak.uname -rw-r--r-- 23.7 KB
configure.ac -rw-r--r-- 38.5 KB
connect.c -rw-r--r-- 32.2 KB
connect.h -rw-r--r-- 891 bytes
connected.c -rw-r--r-- 3.9 KB
connected.h -rw-r--r-- 2.0 KB
convert.c -rw-r--r-- 48.0 KB
convert.h -rw-r--r-- 4.1 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.1 KB
credential.c -rw-r--r-- 7.9 KB
credential.h -rw-r--r-- 9.4 KB
csum-file.c -rw-r--r-- 4.1 KB
csum-file.h -rw-r--r-- 1.3 KB
ctype.c -rw-r--r-- 2.6 KB
daemon.c -rw-r--r-- 34.7 KB
date.c -rw-r--r-- 30.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 1016 bytes
diff-delta.c -rw-r--r-- 15.5 KB
diff-lib.c -rw-r--r-- 15.2 KB
diff-no-index.c -rw-r--r-- 7.2 KB
diff.c -rw-r--r-- 188.3 KB
diff.h -rw-r--r-- 19.3 KB
diffcore-break.c -rw-r--r-- 9.0 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-- 6.6 KB
diffcore-rename.c -rw-r--r-- 17.9 KB
diffcore.h -rw-r--r-- 6.0 KB
dir-iterator.c -rw-r--r-- 5.8 KB
dir-iterator.h -rw-r--r-- 4.3 KB
dir.c -rw-r--r-- 90.8 KB
dir.h -rw-r--r-- 16.4 KB
editor.c -rw-r--r-- 2.8 KB
entry.c -rw-r--r-- 14.0 KB
environment.c -rw-r--r-- 10.7 KB
exec-cmd.c -rw-r--r-- 8.0 KB
exec-cmd.h -rw-r--r-- 483 bytes
fast-import.c -rw-r--r-- 88.0 KB
fetch-negotiator.c -rw-r--r-- 503 bytes
fetch-negotiator.h -rw-r--r-- 1.6 KB
fetch-pack.c -rw-r--r-- 49.7 KB
fetch-pack.h -rw-r--r-- 2.9 KB
fmt-merge-msg.h -rw-r--r-- 180 bytes
fsck.c -rw-r--r-- 27.6 KB
fsck.h -rw-r--r-- 3.2 KB
fsmonitor.c -rw-r--r-- 8.4 KB
fsmonitor.h -rw-r--r-- 2.4 KB
fuzz-commit-graph.c -rw-r--r-- 426 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.8 KB
gettext.c -rw-r--r-- 5.6 KB
gettext.h -rw-r--r-- 2.2 KB
git-add--interactive.perl -rwxr-xr-x 45.0 KB
git-archimport.perl -rwxr-xr-x 36.1 KB
git-bisect.sh -rwxr-xr-x 8.1 KB
git-compat-util.h -rw-r--r-- 35.6 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 16.0 KB
git-instaweb.sh -rwxr-xr-x 21.8 KB
git-legacy-stash.sh -rwxr-xr-x 16.0 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.0 KB
git-mergetool.sh -rwxr-xr-x 10.1 KB
git-p4.py -rwxr-xr-x 154.2 KB
git-parse-remote.sh -rw-r--r-- 2.6 KB
git-quiltimport.sh -rwxr-xr-x 3.6 KB
git-rebase--preserve-merges.sh -rw-r--r-- 28.9 KB
git-request-pull.sh -rwxr-xr-x 4.0 KB
git-send-email.perl -rwxr-xr-x 56.8 KB
git-sh-i18n.sh -rw-r--r-- 2.4 KB
git-sh-setup.sh -rw-r--r-- 9.1 KB
git-submodule.sh -rwxr-xr-x 25.2 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-- 25.9 KB
git.rc -rw-r--r-- 635 bytes
gpg-interface.c -rw-r--r-- 9.9 KB
gpg-interface.h -rw-r--r-- 1.5 KB
graph.c -rw-r--r-- 39.9 KB
graph.h -rw-r--r-- 8.6 KB
grep.c -rw-r--r-- 53.3 KB
grep.h -rw-r--r-- 5.2 KB
hash.h -rw-r--r-- 4.8 KB
hashmap.c -rw-r--r-- 7.7 KB
hashmap.h -rw-r--r-- 17.9 KB
help.c -rw-r--r-- 19.6 KB
help.h -rw-r--r-- 3.1 KB
hex.c -rw-r--r-- 3.2 KB
http-backend.c -rw-r--r-- 18.9 KB
http-fetch.c -rw-r--r-- 1.9 KB
http-push.c -rw-r--r-- 50.1 KB
http-walker.c -rw-r--r-- 15.0 KB
http.c -rw-r--r-- 65.4 KB
http.h -rw-r--r-- 7.1 KB
ident.c -rw-r--r-- 15.5 KB
imap-send.c -rw-r--r-- 36.6 KB
interdiff.c -rw-r--r-- 660 bytes
interdiff.h -rw-r--r-- 119 bytes
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.9 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.1 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-- 9.8 KB
list-objects-filter-options.h -rw-r--r-- 3.7 KB
list-objects-filter.c -rw-r--r-- 19.0 KB
list-objects-filter.h -rw-r--r-- 3.2 KB
list-objects.c -rw-r--r-- 11.3 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-- 10.5 KB
log-tree.c -rw-r--r-- 26.5 KB
log-tree.h -rw-r--r-- 1.4 KB
ls-refs.c -rw-r--r-- 2.6 KB
ls-refs.h -rw-r--r-- 217 bytes
mailinfo.c -rw-r--r-- 27.7 KB
mailinfo.h -rw-r--r-- 1.0 KB
mailmap.c -rw-r--r-- 8.9 KB
mailmap.h -rw-r--r-- 292 bytes
match-trees.c -rw-r--r-- 8.5 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-- 2.0 KB
merge-blobs.h -rw-r--r-- 232 bytes
merge-recursive.c -rw-r--r-- 117.1 KB
merge-recursive.h -rw-r--r-- 3.7 KB
merge.c -rw-r--r-- 2.8 KB
mergesort.c -rw-r--r-- 1.5 KB
mergesort.h -rw-r--r-- 574 bytes
midx.c -rw-r--r-- 36.2 KB
midx.h -rw-r--r-- 1.8 KB
name-hash.c -rw-r--r-- 18.8 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.2 KB
notes.h -rw-r--r-- 12.6 KB
object-store.h -rw-r--r-- 12.4 KB
object.c -rw-r--r-- 13.4 KB
object.h -rw-r--r-- 6.3 KB
oidmap.c -rw-r--r-- 1.4 KB
oidmap.h -rw-r--r-- 2.3 KB
oidset.c -rw-r--r-- 1.6 KB
oidset.h -rw-r--r-- 2.6 KB
pack-bitmap-write.c -rw-r--r-- 12.7 KB
pack-bitmap.c -rw-r--r-- 27.1 KB
pack-bitmap.h -rw-r--r-- 2.3 KB
pack-check.c -rw-r--r-- 5.6 KB
pack-objects.c -rw-r--r-- 5.0 KB
pack-objects.h -rw-r--r-- 12.2 KB
pack-revindex.c -rw-r--r-- 5.8 KB
pack-revindex.h -rw-r--r-- 322 bytes
pack-write.c -rw-r--r-- 10.7 KB
pack.h -rw-r--r-- 3.3 KB
packfile.c -rw-r--r-- 53.5 KB
packfile.h -rw-r--r-- 6.9 KB
pager.c -rw-r--r-- 5.1 KB
parse-options-cb.c -rw-r--r-- 6.5 KB
parse-options.c -rw-r--r-- 25.5 KB
parse-options.h -rw-r--r-- 12.8 KB
patch-delta.c -rw-r--r-- 2.4 KB
patch-ids.c -rw-r--r-- 3.4 KB
patch-ids.h -rw-r--r-- 704 bytes
path.c -rw-r--r-- 38.0 KB
path.h -rw-r--r-- 5.8 KB
pathspec.c -rw-r--r-- 18.0 KB
pathspec.h -rw-r--r-- 5.0 KB
pkt-line.c -rw-r--r-- 13.0 KB
pkt-line.h -rw-r--r-- 7.9 KB
preload-index.c -rw-r--r-- 3.8 KB
pretty.c -rw-r--r-- 48.4 KB
pretty.h -rw-r--r-- 3.7 KB
prio-queue.c -rw-r--r-- 2.0 KB
prio-queue.h -rw-r--r-- 1.6 KB
progress.c -rw-r--r-- 8.7 KB
progress.h -rw-r--r-- 626 bytes
promisor-remote.c -rw-r--r-- 5.5 KB
promisor-remote.h -rw-r--r-- 871 bytes
prompt.c -rw-r--r-- 1.4 KB
prompt.h -rw-r--r-- 168 bytes
protocol.c -rw-r--r-- 2.5 KB
protocol.h -rw-r--r-- 1.1 KB
quote.c -rw-r--r-- 11.7 KB
quote.h -rw-r--r-- 3.1 KB
range-diff.c -rw-r--r-- 14.3 KB
range-diff.h -rw-r--r-- 486 bytes
reachable.c -rw-r--r-- 5.9 KB
reachable.h -rw-r--r-- 304 bytes
read-cache.c -rw-r--r-- 98.2 KB
rebase-interactive.c -rw-r--r-- 6.1 KB
rebase-interactive.h -rw-r--r-- 523 bytes
ref-filter.c -rw-r--r-- 68.1 KB
ref-filter.h -rw-r--r-- 4.6 KB
reflog-walk.c -rw-r--r-- 8.2 KB
reflog-walk.h -rw-r--r-- 885 bytes
refs.c -rw-r--r-- 57.8 KB
refs.h -rw-r--r-- 31.5 KB
refspec.c -rw-r--r-- 4.9 KB
refspec.h -rw-r--r-- 2.1 KB
remote-curl.c -rw-r--r-- 36.9 KB
remote-testsvn.c -rw-r--r-- 8.2 KB
remote.c -rw-r--r-- 58.4 KB
remote.h -rw-r--r-- 9.9 KB
replace-object.c -rw-r--r-- 2.0 KB
replace-object.h -rw-r--r-- 1.1 KB
repo-settings.c -rw-r--r-- 2.5 KB
repository.c -rw-r--r-- 6.5 KB
repository.h -rw-r--r-- 5.2 KB
rerere.c -rw-r--r-- 32.2 KB
rerere.h -rw-r--r-- 1.4 KB
resolve-undo.c -rw-r--r-- 4.4 KB
resolve-undo.h -rw-r--r-- 581 bytes
revision.c -rw-r--r-- 108.2 KB
revision.h -rw-r--r-- 12.0 KB
run-command.c -rw-r--r-- 40.7 KB
run-command.h -rw-r--r-- 16.4 KB
send-pack.c -rw-r--r-- 16.1 KB
send-pack.h -rw-r--r-- 893 bytes
sequencer.c -rw-r--r-- 148.9 KB
sequencer.h -rw-r--r-- 6.6 KB
serve.c -rw-r--r-- 6.2 KB
serve.h -rw-r--r-- 336 bytes
server-info.c -rw-r--r-- 7.5 KB
setup.c -rw-r--r-- 34.8 KB
sh-i18n--envsubst.c -rw-r--r-- 10.2 KB
sha1-array.c -rw-r--r-- 1.9 KB
sha1-array.h -rw-r--r-- 3.5 KB
sha1-file.c -rw-r--r-- 60.7 KB
sha1-lookup.c -rw-r--r-- 3.2 KB
sha1-lookup.h -rw-r--r-- 1.3 KB
sha1-name.c -rw-r--r-- 47.9 KB
sha1dc_git.c -rw-r--r-- 889 bytes
sha1dc_git.h -rw-r--r-- 618 bytes
shallow.c -rw-r--r-- 21.1 KB
shell.c -rw-r--r-- 4.5 KB
shortlog.h -rw-r--r-- 508 bytes
sideband.c -rw-r--r-- 5.4 KB
sideband.h -rw-r--r-- 903 bytes
sigchain.c -rw-r--r-- 1.1 KB
sigchain.h -rw-r--r-- 1.7 KB
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-- 24.6 KB
strbuf.h -rw-r--r-- 23.0 KB
streaming.c -rw-r--r-- 12.3 KB
streaming.h -rw-r--r-- 482 bytes
string-list.c -rw-r--r-- 7.6 KB
string-list.h -rw-r--r-- 9.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.2 KB
submodule-config.h -rw-r--r-- 3.6 KB
submodule.c -rw-r--r-- 59.2 KB
submodule.h -rw-r--r-- 5.5 KB
symlinks.c -rw-r--r-- 9.3 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.1 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.6 KB
trace.h -rw-r--r-- 8.1 KB
trace2.c -rw-r--r-- 17.8 KB
trace2.h -rw-r--r-- 17.7 KB
trailer.c -rw-r--r-- 29.5 KB
trailer.h -rw-r--r-- 2.5 KB
transport-helper.c -rw-r--r-- 37.9 KB
transport-internal.h -rw-r--r-- 2.6 KB
transport.c -rw-r--r-- 36.5 KB
transport.h -rw-r--r-- 8.0 KB
tree-diff.c -rw-r--r-- 17.9 KB
tree-walk.c -rw-r--r-- 31.1 KB
tree-walk.h -rw-r--r-- 6.7 KB
tree.c -rw-r--r-- 6.3 KB
tree.h -rw-r--r-- 1.2 KB
unicode-width.h -rw-r--r-- 9.1 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-- 65.4 KB
unpack-trees.h -rw-r--r-- 2.6 KB
upload-pack.c -rw-r--r-- 39.7 KB
upload-pack.h -rw-r--r-- 499 bytes
url.c -rw-r--r-- 2.5 KB
url.h -rw-r--r-- 697 bytes
urlmatch.c -rw-r--r-- 18.1 KB
urlmatch.h -rw-r--r-- 2.0 KB
usage.c -rw-r--r-- 6.7 KB
userdiff.c -rw-r--r-- 11.3 KB
userdiff.h -rw-r--r-- 892 bytes
utf8.c -rw-r--r-- 19.9 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.4 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-- 13.6 KB
worktree.h -rw-r--r-- 3.7 KB
wrap-for-bin.sh -rw-r--r-- 946 bytes
wrapper.c -rw-r--r-- 14.2 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-- 68.6 KB
wt-status.h -rw-r--r-- 4.2 KB
xdiff-interface.c -rw-r--r-- 7.3 KB
xdiff-interface.h -rw-r--r-- 2.0 KB
zlib.c -rw-r--r-- 6.1 KB

README.md

back to top