https://github.com/git/git
Revision 7ec8125fba96f47b00bb0cab3ed716557e81e7e6 authored by Elijah Newren on 18 February 2020, 23:05:37 UTC, committed by Junio C Hamano on 18 February 2020, 23:28:58 UTC
check-ignore has two different modes, and neither of these modes has an
implementation that matches the documentation.  These modes differ in
whether they just print paths or whether they also print the final
pattern matched by the path.  The fix is different for both modes, so
I'll discuss both separately.

=== First (default) mode ===

The first mode is documented as:

    For each pathname given via the command-line or from a file via
    --stdin, check whether the file is excluded by .gitignore (or other
    input files to the exclude mechanism) and output the path if it is
    excluded.

However, it fails to do this because it did not account for negated
patterns.  Commands other than check-ignore verify exclusion rules via
calling

   ... -> treat_one_path() -> is_excluded() -> last_matching_pattern()

while check-ignore has a call path of the form:

   ... -> check_ignore()                    -> last_matching_pattern()

The fact that the latter does not include the call to is_excluded()
means that it is susceptible to to messing up negated patterns (since
that is the only significant thing is_excluded() adds over
last_matching_pattern()).  Unfortunately, we can't make it just call
is_excluded(), because the same codepath is used by the verbose mode
which needs to know the matched pattern in question.  This brings us
to...

=== Second (verbose) mode ===

The second mode, known as verbose mode, references the first in the
documentation and says:

    Also output details about the matching pattern (if any) for each
    given pathname. For precedence rules within and between exclude
    sources, see gitignore(5).

The "Also" means it will print patterns that match the exclude rules as
noted for the first mode, and also print which pattern matches.  Unless
more information is printed than just pathname and pattern (which is not
done), this definition is somewhat ill-defined and perhaps even
self-contradictory for negated patterns: A path which matches a negated
exclude pattern is NOT excluded and thus shouldn't be printed by the
former logic, while it certainly does match one of the explicit patterns
and thus should be printed by the latter logic.

=== Resolution ==

Since the second mode exists to find out which pattern matches given
paths, and showing the user a pattern that begins with a '!' is
sufficient for them to figure out whether the pattern is excluded, the
existing behavior is desirable -- we just need to update the
documentation to match the implementation (i.e. it is about printing
which pattern is matched by paths, not about showing which paths are
excluded).

For the first or default mode, users just want to know whether a pattern
is excluded.  As such, the existing documentation is desirable; change
the implementation to match the documented behavior.

Finally, also adjust a few tests in t0008 that were caught up by this
discrepancy in how negated paths were handled.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent b6d4d82
History
Tip revision: 7ec8125fba96f47b00bb0cab3ed716557e81e7e6 authored by Elijah Newren on 18 February 2020, 23:05:37 UTC
check-ignore: fix documentation and implementation to match
Tip revision: 7ec8125
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
.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.2 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 752 bytes
INSTALL -rw-r--r-- 10.0 KB
LGPL-2.1 -rw-r--r-- 26.2 KB
Makefile -rw-r--r-- 100.1 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
advice.c -rw-r--r-- 6.4 KB
advice.h -rw-r--r-- 1.4 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.1 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.2 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.3 KB
attr.h -rw-r--r-- 2.2 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.0 KB
bulk-checkin.c -rw-r--r-- 7.3 KB
bulk-checkin.h -rw-r--r-- 323 bytes
bundle.c -rw-r--r-- 12.5 KB
bundle.h -rw-r--r-- 769 bytes
cache-tree.c -rw-r--r-- 20.7 KB
cache-tree.h -rw-r--r-- 2.1 KB
cache.h -rw-r--r-- 65.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.1 KB
commit-graph.c -rw-r--r-- 53.8 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-- 39.1 KB
commit.h -rw-r--r-- 13.8 KB
common-main.c -rw-r--r-- 1.3 KB
config.c -rw-r--r-- 80.4 KB
config.h -rw-r--r-- 10.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-- 37.5 KB
connect.c -rw-r--r-- 32.2 KB
connect.h -rw-r--r-- 891 bytes
connected.c -rw-r--r-- 3.8 KB
connected.h -rw-r--r-- 2.0 KB
convert.c -rw-r--r-- 48.2 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-- 833 bytes
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.3 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.4 KB
diff.h -rw-r--r-- 14.8 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-- 4.8 KB
dir-iterator.c -rw-r--r-- 5.8 KB
dir-iterator.h -rw-r--r-- 4.3 KB
dir.c -rw-r--r-- 83.0 KB
dir.h -rw-r--r-- 12.0 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-- 47.6 KB
fetch-pack.h -rw-r--r-- 2.9 KB
fmt-merge-msg.h -rw-r--r-- 180 bytes
fsck.c -rw-r--r-- 28.9 KB
fsck.h -rw-r--r-- 2.0 KB
fsmonitor.c -rw-r--r-- 8.0 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.8 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 153.8 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 24.5 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.5 KB
gpg-interface.h -rw-r--r-- 1.9 KB
graph.c -rw-r--r-- 36.9 KB
graph.h -rw-r--r-- 4.9 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.7 KB
help.h -rw-r--r-- 3.1 KB
hex.c -rw-r--r-- 3.4 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-- 740 bytes
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-- 115.2 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-- 35.0 KB
midx.h -rw-r--r-- 1.7 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-- 36.4 KB
notes.h -rw-r--r-- 11.8 KB
object-store.h -rw-r--r-- 11.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.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-- 4.9 KB
pack-objects.h -rw-r--r-- 11.9 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.9 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.5 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-- 36.9 KB
path.h -rw-r--r-- 5.8 KB
pathspec.c -rw-r--r-- 17.0 KB
pathspec.h -rw-r--r-- 3.3 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-- 47.9 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.5 KB
progress.h -rw-r--r-- 626 bytes
promisor-remote.c -rw-r--r-- 5.6 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-- 13.8 KB
range-diff.h -rw-r--r-- 415 bytes
reachable.c -rw-r--r-- 5.9 KB
reachable.h -rw-r--r-- 304 bytes
read-cache.c -rw-r--r-- 98.1 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-- 30.3 KB
refspec.c -rw-r--r-- 4.9 KB
refspec.h -rw-r--r-- 1.3 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-- 8.2 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.1 KB
revision.h -rw-r--r-- 9.8 KB
run-command.c -rw-r--r-- 40.7 KB
run-command.h -rw-r--r-- 8.1 KB
send-pack.c -rw-r--r-- 16.1 KB
send-pack.h -rw-r--r-- 893 bytes
sequencer.c -rw-r--r-- 144.0 KB
sequencer.h -rw-r--r-- 6.5 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-- 782 bytes
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-- 855 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-- 247 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-- 23.8 KB
strbuf.h -rw-r--r-- 22.6 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-- 2.4 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.0 KB
tag.h -rw-r--r-- 727 bytes
tar.h -rw-r--r-- 644 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-- 4.7 KB
trace2.c -rw-r--r-- 17.8 KB
trace2.h -rw-r--r-- 13.9 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.3 KB
tree-walk.h -rw-r--r-- 3.0 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-- 64.1 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.4 KB
userdiff.c -rw-r--r-- 10.8 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