Go to file
Jeff King 95c679ad86 test-lib: stop showing old leak logs
We ask LSan to record the logs of all leaks in test-results/, which is
useful for finding leaks that didn't trigger a test failure.

We don't clean out the leak/ directory for each test before running it,
though. Instead, we count the number of files it has, and complain only
if we ended up with more when the script finishes. So we shouldn't
trigger any output if you've made a script leak free. But if you simply
_reduced_ the number of leaks, then there is an annoying outcome: we do
not record which logs were from this run and which were from previous
ones. So when we dump them to stdout, you get a mess of
possibly-outdated leaks. This is very confusing when you are in an
edit-compile-test cycle trying to fix leaks.

The instructions do note that you should "rm -rf test-results/" if you
want to avoid this. But I'm having trouble seeing how this cumulative
count could ever be useful. It is not even counting the number of leaks,
but rather the number of processes with at least one leak!

So let's just blow away the per-test leak/ directory before running. We
already overwrite the ".out" file in test-results/ in the same way, so
this is following that pattern.

Running "make test" isn't affected by this, since it blows away all of
test-results/ already. This only comes up when you are iterating on a
single script that you're running manually.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-09-25 10:23:01 -07:00
.github Merge branch 'jk/ci-linux32-update' 2024-09-16 15:27:08 -07:00
Documentation The 20th batch 2024-09-23 10:35:09 -07:00
block-sha1
…
builtin Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
ci Merge branch 'jk/ci-linux32-update' 2024-09-16 15:27:08 -07:00
compat Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
contrib Merge branch 'jk/jump-quickfix-fixes' 2024-09-23 10:35:08 -07:00
ewah
…
git-gui
…
gitk-git
…
gitweb
…
mergetools mergetools: vscode: new tool 2024-09-01 20:47:58 -07:00
negotiator Merge branch 'ps/leakfixes-part-6' 2024-09-20 11:16:30 -07:00
oss-fuzz oss-fuzz: mark unused argv/argc argument 2024-08-17 09:46:11 -07:00
perl Merge branch 'jk/git-pm-bare-repo-fix' 2024-09-20 11:16:33 -07:00
po l10n: zh_CN: updated translation for 2.46 2024-07-28 19:52:41 +08:00
refs Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
reftable t: move reftable/stack_test.c to the unit testing framework 2024-09-08 13:24:03 -07:00
sha1
…
sha1collisiondetection@855827c583
…
sha1dc
…
sha256
…
t test-lib: stop showing old leak logs 2024-09-25 10:23:01 -07:00
templates
…
trace2 Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
xdiff
…
.cirrus.yml
…
.clang-format Merge branch 'rs/unit-tests-test-run' 2024-08-19 11:07:36 -07:00
.editorconfig
…
.gitattributes
…
.gitignore Makefile: wire up the clar unit testing framework 2024-09-04 08:41:37 -07:00
.gitlab-ci.yml Merge branch 'jk/ci-linux32-update' 2024-09-16 15:27:08 -07:00
.gitmodules
…
.mailmap .mailmap document current address. 2024-09-06 09:31:15 -07:00
.tsan-suppressions
…
CODE_OF_CONDUCT.md
…
COPYING
…
GIT-VERSION-GEN Git 2.46.2 2024-09-23 10:33:01 -07:00
INSTALL
…
LGPL-2.1
…
Makefile Merge branch 'ps/clar-unit-test' 2024-09-18 18:02:05 -07:00
README.md
…
RelNotes Start preparing for Git 2.46.2 2024-09-16 15:19:05 -07:00
SECURITY.md
…
abspath.c
…
abspath.h
…
aclocal.m4
…
add-interactive.c
…
add-interactive.h
…
add-patch.c Merge branch 'ps/config-wo-the-repository' 2024-08-23 09:02:34 -07:00
advice.c
…
advice.h
…
alias.c config: make dependency on repo in `read_early_config()` explicit 2024-09-12 10:15:40 -07:00
alias.h
…
alloc.c
…
alloc.h
…
apply.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
apply.h apply: support --ours, --theirs, and --union for three-way merges 2024-09-09 10:07:24 -07:00
archive-tar.c
…
archive-zip.c
…
archive.c builtin/upload-archive: fix leaking args passed to `write_archive()` 2024-08-22 09:18:04 -07:00
archive.h
…
attr.c Merge branch 'ak/typofixes' 2024-09-23 10:35:07 -07:00
attr.h
…
banned.h
…
base85.c
…
base85.h
…
bisect.c Merge branch 'ps/pack-refs-auto-heuristics' 2024-09-12 11:47:23 -07:00
bisect.h
…
blame.c
…
blame.h
…
blob.c
…
blob.h
…
bloom.c
…
bloom.h Merge branch 'ak/typofixes' 2024-09-23 10:35:07 -07:00
branch.c branch: stop modifying `log_all_ref_updates` variable 2024-09-12 10:15:43 -07:00
branch.h
…
builtin.h builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h 2024-09-13 14:32:24 -07:00
bulk-checkin.c environment: make `get_object_directory()` accept a repository 2024-09-12 10:15:39 -07:00
bulk-checkin.h
…
bundle-uri.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
bundle-uri.h
…
bundle.c Merge branch 'ps/leakfixes-part-5' 2024-09-03 09:15:00 -07:00
bundle.h
…
cache-tree.c environment: make `get_git_dir()` accept a repository 2024-09-12 10:15:39 -07:00
cache-tree.h
…
cbtree.c cbtree: fix a typo 2024-09-16 10:46:00 -07:00
cbtree.h
…
chdir-notify.c
…
chdir-notify.h
…
check-builtins.sh
…
checkout.c
…
checkout.h
…
chunk-format.c
…
chunk-format.h
…
color.c
…
color.h
…
column.c
…
column.h
…
combine-diff.c
…
command-list.txt
…
commit-graph.c refs: add referent to each_ref_fn 2024-08-09 08:47:34 -07:00
commit-graph.h
…
commit-reach.c Merge branch 'ds/for-each-ref-is-base' 2024-08-26 11:32:24 -07:00
commit-reach.h commit-reach: add get_branch_base_for_tip 2024-08-14 10:10:05 -07:00
commit-slab-decl.h
…
commit-slab-impl.h
…
commit-slab.h
…
commit.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
commit.h Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
common-main.c
…
config.c environment: stop storing "core.notesRef" globally 2024-09-12 10:15:44 -07:00
config.h config: make dependency on repo in `read_early_config()` explicit 2024-09-12 10:15:40 -07:00
config.mak.dev config.mak.dev: enable -Wunused-parameter by default 2024-08-28 09:51:18 -07:00
config.mak.in
…
config.mak.uname Merge branch 'rj/cygwin-has-dev-tty' into maint-2.46 2024-09-23 10:32:59 -07:00
configure.ac
…
connect.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
connect.h
…
connected.c
…
connected.h
…
convert.c convert: fix leaks when resetting attributes 2024-08-22 09:18:03 -07:00
convert.h
…
copy.c
…
copy.h
…
credential.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
credential.h
…
csum-file.c Merge branch 'ps/leakfixes-part-4' 2024-08-23 09:02:33 -07:00
csum-file.h Merge branch 'ps/leakfixes-part-4' 2024-08-23 09:02:33 -07:00
ctype.c
…
daemon.c Merge branch 'jk/mark-unused-parameters' 2024-08-26 11:32:23 -07:00
date.c
…
date.h
…
decorate.c
…
decorate.h
…
delta-islands.c refs: add referent to each_ref_fn 2024-08-09 08:47:34 -07:00
delta-islands.h
…
delta.h
…
detect-compiler
…
diagnose.c
…
diagnose.h
…
diff-delta.c
…
diff-lib.c diff-lib: drop unused index argument from get_stat_data() 2024-08-17 09:44:41 -07:00
diff-merges.c
…
diff-merges.h
…
diff-no-index.c remerge-diff: clean up temporary objdir at a central place 2024-08-09 15:42:40 -07:00
diff.c Merge branch 'jc/range-diff-lazy-setup' 2024-09-16 14:22:55 -07:00
diff.h Merge branch 'jc/range-diff-lazy-setup' 2024-09-16 14:22:55 -07:00
diffcore-break.c
…
diffcore-delta.c
…
diffcore-order.c
…
diffcore-pickaxe.c
…
diffcore-rename.c
…
diffcore-rotate.c
…
diffcore.h
…
dir-iterator.c
…
dir-iterator.h
…
dir.c environment: make `get_git_work_tree()` accept a repository 2024-09-12 10:15:40 -07:00
dir.h
…
editor.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
editor.h editor: do not rely on `the_repository` for interactive edits 2024-08-13 10:01:00 -07:00
entry.c entry: fix leaking pathnames during delayed checkout 2024-08-01 08:47:37 -07:00
entry.h
…
environment.c environment: stop storing "core.notesRef" globally 2024-09-12 10:15:44 -07:00
environment.h environment: stop storing "core.notesRef" globally 2024-09-12 10:15:44 -07:00
exec-cmd.c exec_cmd: RUNTIME_PREFIX on z/OS systems 2024-08-22 08:58:46 -07:00
exec-cmd.h
…
fetch-negotiator.c
…
fetch-negotiator.h
…
fetch-pack.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
fetch-pack.h
…
fmt-merge-msg.c
…
fmt-merge-msg.h
…
fsck.c builtin/refs: add verify subcommand 2024-08-08 09:36:53 -07:00
fsck.h fsck: add ref name check for files backend 2024-08-08 09:36:53 -07:00
fsmonitor--daemon.h
…
fsmonitor-ipc.c
…
fsmonitor-ipc.h
…
fsmonitor-ll.h
…
fsmonitor-path-utils.h
…
fsmonitor-settings.c
…
fsmonitor-settings.h
…
fsmonitor.c environment: make `get_git_work_tree()` accept a repository 2024-09-12 10:15:40 -07:00
fsmonitor.h
…
generate-cmdlist.sh
…
generate-configlist.sh
…
generate-hooklist.sh
…
gettext.c
…
gettext.h
…
git-archimport.perl
…
git-compat-util.h CodingGuidelines: also mention MAYBE_UNUSED 2024-08-29 11:28:07 -07:00
git-curl-compat.h
…
git-cvsexportcommit.perl
…
git-cvsimport.perl
…
git-cvsserver.perl
…
git-difftool--helper.sh
…
git-filter-branch.sh
…
git-instaweb.sh
…
git-merge-octopus.sh
…
git-merge-one-file.sh
…
git-merge-resolve.sh
…
git-mergetool--lib.sh
…
git-mergetool.sh
…
git-p4.py
…
git-quiltimport.sh
…
git-request-pull.sh
…
git-send-email.perl Merge branch 'jk/send-email-mailmap' 2024-09-06 10:38:49 -07:00
git-sh-i18n.sh
…
git-sh-setup.sh
…
git-submodule.sh builtin/submodule: allow "add" to use different ref storage format 2024-08-08 09:22:21 -07:00
git-svn.perl git-svn: mention `svn:global-ignores` in help+docs 2024-08-14 15:10:24 -07:00
git-web--browse.sh
…
git-zlib.c
…
git-zlib.h
…
git.c builtin: add a repository parameter for builtin functions 2024-09-13 14:27:08 -07:00
git.rc
…
gpg-interface.c gpg-interface: fix misdesigned signing key interfaces 2024-09-05 08:49:11 -07:00
gpg-interface.h gpg-interface: fix misdesigned signing key interfaces 2024-09-05 08:49:11 -07:00
graph.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
graph.h
…
grep.c grep: prefer UNUSED to MAYBE_UNUSED for pcre allocators 2024-08-29 13:59:46 -07:00
grep.h
…
hash-lookup.c
…
hash-lookup.h
…
hash.h
…
hashmap.c
…
hashmap.h
…
help.c Merge branch 'jc/pass-repo-to-builtins' 2024-09-23 10:35:09 -07:00
help.h
…
hex-ll.c
…
hex-ll.h
…
hex.c
…
hex.h
…
hook.c hooks: remove implicit dependency on `the_repository` 2024-08-13 10:01:01 -07:00
hook.h hooks: remove implicit dependency on `the_repository` 2024-08-13 10:01:01 -07:00
http-backend.c environment: make `get_object_directory()` accept a repository 2024-09-12 10:15:39 -07:00
http-fetch.c
…
http-push.c
…
http-walker.c
…
http.c http: do not ignore proxy path 2024-08-02 08:30:08 -07:00
http.h
…
ident.c
…
ident.h
…
imap-send.c Merge branch 'jk/no-openssl-with-openssl-sha1' 2024-09-20 11:16:31 -07:00
iterator.h
…
json-writer.c
…
json-writer.h
…
khash.h
…
kwset.c
…
kwset.h
…
levenshtein.c
…
levenshtein.h
…
line-log.c
…
line-log.h
…
line-range.c
…
line-range.h
…
linear-assignment.c
…
linear-assignment.h
…
list-objects-filter-options.c
…
list-objects-filter-options.h
…
list-objects-filter.c
…
list-objects-filter.h
…
list-objects.c
…
list-objects.h
…
list.h
…
lockfile.c
…
lockfile.h
…
log-tree.c Merge branch 'jc/range-diff-lazy-setup' 2024-09-16 14:22:55 -07:00
log-tree.h
…
loose.c drop trailing newline from warning/error/die messages 2024-09-05 09:07:12 -07:00
loose.h
…
ls-refs.c refs: add referent to each_ref_fn 2024-08-09 08:47:34 -07:00
ls-refs.h
…
mailinfo.c Merge branch 'jc/mailinfo-header-cleanup' 2024-09-12 11:47:22 -07:00
mailinfo.h
…
mailmap.c Merge branch 'jk/send-email-mailmap' 2024-09-06 10:38:49 -07:00
mailmap.h check-mailmap: add options for additional mailmap sources 2024-08-27 14:51:29 -07:00
match-trees.c match-trees: fix leaking prefixes in `shift_tree()` 2024-09-05 08:49:12 -07:00
match-trees.h
…
mem-pool.c
…
mem-pool.h
…
merge-blobs.c
…
merge-blobs.h
…
merge-ll.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
merge-ll.h
…
merge-ort-wrappers.c
…
merge-ort-wrappers.h
…
merge-ort.c merge-ort: fix two leaks when handling directory rename modifications 2024-09-05 08:49:13 -07:00
merge-ort.h
…
merge-recursive.c
…
merge-recursive.h
…
merge.c
…
merge.h
…
mergesort.h
…
midx-write.c Merge branch 'ps/leakfixes-part-5' 2024-09-03 09:15:00 -07:00
midx.c pack-bitmap: tag bitmapped packs with their corresponding MIDX 2024-08-27 14:50:26 -07:00
midx.h midx: implement support for writing incremental MIDX chains 2024-08-06 12:01:39 -07:00
name-hash.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
name-hash.h
…
notes-cache.c
…
notes-cache.h
…
notes-merge.c
…
notes-merge.h
…
notes-utils.c
…
notes-utils.h
…
notes.c environment: stop storing "core.notesRef" globally 2024-09-12 10:15:44 -07:00
notes.h environment: stop storing "core.notesRef" globally 2024-09-12 10:15:44 -07:00
object-file-convert.c
…
object-file-convert.h
…
object-file.c environment: move object database functions into object layer 2024-09-12 10:15:40 -07:00
object-file.h
…
object-name.c environment: stop storing "core.warnAmbiguousRefs" globally 2024-09-12 10:15:44 -07:00
object-name.h
…
object-store-ll.h environment: move object database functions into object layer 2024-09-12 10:15:40 -07:00
object-store.h
…
object.c object: clear grafts when clearing parsed object pool 2024-09-05 08:49:11 -07:00
object.h object: clear grafts when clearing parsed object pool 2024-09-05 08:49:11 -07:00
oid-array.c
…
oid-array.h
…
oidmap.c
…
oidmap.h
…
oidset.c
…
oidset.h
…
oidtree.c
…
oidtree.h
…
pack-bitmap-write.c Merge branch 'jk/drop-unused-parameters' 2024-08-26 11:32:22 -07:00
pack-bitmap.c pack-bitmap.c: avoid repeated `pack_pos_to_offset()` during reuse 2024-08-27 14:50:27 -07:00
pack-bitmap.h pack-bitmap: tag bitmapped packs with their corresponding MIDX 2024-08-27 14:50:26 -07:00
pack-check.c
…
pack-mtimes.c
…
pack-mtimes.h
…
pack-objects.c
…
pack-objects.h
…
pack-revindex.c
…
pack-revindex.h
…
pack-write.c environment: make `get_object_directory()` accept a repository 2024-09-12 10:15:39 -07:00
pack.h
…
packfile.c environment: make `get_object_directory()` accept a repository 2024-09-12 10:15:39 -07:00
packfile.h midx: implement support for writing incremental MIDX chains 2024-08-06 12:01:39 -07:00
pager.c config: make dependency on repo in `read_early_config()` explicit 2024-09-12 10:15:40 -07:00
pager.h
…
parallel-checkout.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
parallel-checkout.h
…
parse-options-cb.c
…
parse-options.c
…
parse-options.h
…
parse.c
…
parse.h
…
patch-delta.c
…
patch-ids.c
…
patch-ids.h
…
path.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
path.h path: hide functions using `the_repository` by default 2024-08-13 10:01:01 -07:00
pathspec.c environment: make `get_git_work_tree()` accept a repository 2024-09-12 10:15:40 -07:00
pathspec.h
…
pkt-line.c
…
pkt-line.h
…
preload-index.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
preload-index.h
…
pretty.c pretty: fix leaking key/value separator buffer 2024-08-22 09:18:04 -07:00
pretty.h
…
prio-queue.c
…
prio-queue.h
…
progress.c
…
progress.h
…
promisor-remote.c
…
promisor-remote.h
…
prompt.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
prompt.h
…
protocol-caps.c
…
protocol-caps.h
…
protocol.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
protocol.h
…
prune-packed.c environment: make `get_object_directory()` accept a repository 2024-09-12 10:15:39 -07:00
prune-packed.h
…
pseudo-merge.c Merge branch 'jk/drop-unused-parameters' 2024-08-26 11:32:22 -07:00
pseudo-merge.h pack-bitmap: drop unused parameters from select_pseudo_merges() 2024-08-17 09:44:41 -07:00
quote.c
…
quote.h
…
range-diff.c userdiff: fix leaking memory for configured diff drivers 2024-08-14 10:08:01 -07:00
range-diff.h
…
reachable.c refs: add referent to each_ref_fn 2024-08-09 08:47:34 -07:00
reachable.h
…
read-cache-ll.h
…
read-cache.c environment: make `get_git_dir()` accept a repository 2024-09-12 10:15:39 -07:00
read-cache.h
…
rebase-interactive.c
…
rebase-interactive.h
…
rebase.c
…
rebase.h
…
ref-filter.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
ref-filter.h ref-filter: add ref_format_clear() function 2024-09-09 16:26:11 -07:00
reflog-walk.c
…
reflog-walk.h
…
reflog.c Merge branch 'jc/reflog-expire-lookup-commit-fix' into maint-2.46 2024-08-26 11:10:21 -07:00
reflog.h
…
refs.c environment: stop storing "core.warnAmbiguousRefs" globally 2024-09-12 10:15:44 -07:00
refs.h refs: stop modifying global `log_all_ref_updates` variable 2024-09-12 10:15:43 -07:00
refspec.c
…
refspec.h
…
remote-curl.c
…
remote.c Merge branch 'ps/leakfixes-part-6' 2024-09-20 11:16:30 -07:00
remote.h ref-filter: fix leak when formatting %(push:remoteref) 2024-09-09 16:26:10 -07:00
replace-object.c refs: add referent to each_ref_fn 2024-08-09 08:47:34 -07:00
replace-object.h
…
repo-settings.c environment: stop storing "core.warnAmbiguousRefs" globally 2024-09-12 10:15:44 -07:00
repo-settings.h environment: stop storing "core.warnAmbiguousRefs" globally 2024-09-12 10:15:44 -07:00
repository.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
repository.h repo-settings: split out declarations into a standalone header 2024-09-12 10:15:42 -07:00
rerere.c Merge branch 'ps/config-wo-the-repository' 2024-08-23 09:02:34 -07:00
rerere.h
…
reset.c hooks: remove implicit dependency on `the_repository` 2024-08-13 10:01:01 -07:00
reset.h
…
resolve-undo.c
…
resolve-undo.h
…
revision.c Merge branch 'jk/free-commit-buffer-of-skipped-commits' into maint-2.46 2024-09-13 15:26:49 -07:00
revision.h
…
run-command.c run-command: fix detaching when running auto maintenance 2024-08-16 09:46:26 -07:00
run-command.h
…
sane-ctype.h
…
scalar.c scalar: add --no-tags option to 'scalar clone' 2024-09-06 14:13:48 -07:00
send-pack.c Merge branch 'ps/leakfixes-part-6' 2024-09-20 11:16:30 -07:00
send-pack.h
…
sequencer.c Merge branch 'mt/rebase-x-quiet' 2024-08-28 10:31:26 -07:00
sequencer.h
…
serve.c drop trailing newline from warning/error/die messages 2024-09-05 09:07:12 -07:00
serve.h
…
server-info.c environment: make `get_object_directory()` accept a repository 2024-09-12 10:15:39 -07:00
server-info.h
…
setup.c environment: stop storing "core.logAllRefUpdates" globally 2024-09-12 10:15:43 -07:00
setup.h environment: move `set_git_dir()` and related into setup layer 2024-09-12 10:15:41 -07:00
sh-i18n--envsubst.c
…
sha1dc_git.c
…
sha1dc_git.h
…
shallow.c shallow: fix leaking members of `struct shallow_info` 2024-09-05 08:49:12 -07:00
shallow.h
…
shared.mak
…
shell.c
…
shortlog.h
…
sideband.c Merge branch 'ps/leakfixes-part-5' 2024-09-03 09:15:00 -07:00
sideband.h
…
sigchain.c
…
sigchain.h
…
simple-ipc.h
…
sparse-index.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
sparse-index.h
…
split-index.c
…
split-index.h
…
stable-qsort.c
…
statinfo.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
statinfo.h
…
strbuf.c
…
strbuf.h
…
streaming.c
…
streaming.h
…
string-list.c
…
string-list.h
…
strmap.c
…
strmap.h
…
strvec.c
…
strvec.h
…
sub-process.c
…
sub-process.h
…
submodule-config.c submodule-config: fix leaking name entry when traversing submodules 2024-08-14 10:07:58 -07:00
submodule-config.h
…
submodule.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
submodule.h
…
symlinks.c
…
symlinks.h
…
tag.c
…
tag.h
…
tar.h
…
tempfile.c
…
tempfile.h
…
thread-utils.c
…
thread-utils.h
…
tmp-objdir.c environment: make `get_object_directory()` accept a repository 2024-09-12 10:15:39 -07:00
tmp-objdir.h
…
trace.c environment: make `get_git_work_tree()` accept a repository 2024-09-12 10:15:40 -07:00
trace.h
…
trace2.c
…
trace2.h
…
trailer.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
trailer.h
…
transport-helper.c Merge branch 'jk/diag-unexpected-remote-helper-death' 2024-09-23 10:35:06 -07:00
transport-internal.h
…
transport.c Merge branch 'ps/leakfixes-part-5' 2024-09-03 09:15:00 -07:00
transport.h
…
tree-diff.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
tree-walk.c
…
tree-walk.h
…
tree.c
…
tree.h
…
unicode-width.h unicode: update the width tables to Unicode 16 2024-09-12 14:20:44 -07:00
unimplemented.sh
…
unix-socket.c
…
unix-socket.h
…
unix-stream-server.c
…
unix-stream-server.h
…
unpack-trees.c unpack-trees: clear index when not propagating it 2024-08-14 10:08:00 -07:00
unpack-trees.h
…
upload-pack.c upload-pack: fix leaking child process data on reachability checks 2024-09-05 08:49:11 -07:00
upload-pack.h
…
url.c
…
url.h
…
urlmatch.c
…
urlmatch.h
…
usage.c
…
userdiff.c environment: guard state depending on a repository 2024-09-12 10:15:42 -07:00
userdiff.h userdiff: fix leaking memory for configured diff drivers 2024-08-14 10:08:01 -07:00
utf8.c
…
utf8.h
…
varint.c
…
varint.h
…
version.c
…
version.h
…
versioncmp.c global: prepare for hiding away repo-less config functions 2024-08-13 10:01:05 -07:00
versioncmp.h
…
walker.c refs: add referent to each_ref_fn 2024-08-09 08:47:34 -07:00
walker.h
…
wildmatch.c
…
wildmatch.h
…
worktree.c environment: make `get_git_common_dir()` accept a repository 2024-09-12 10:15:39 -07:00
worktree.h
…
wrap-for-bin.sh
…
wrapper.c
…
wrapper.h wrapper: introduce `log2u()` 2024-09-04 08:03:24 -07:00
write-or-die.c
…
write-or-die.h
…
ws.c
…
ws.h
…
wt-status.c Merge branch 'ps/environ-wo-the-repository' 2024-09-23 10:35:05 -07:00
wt-status.h
…
xdiff-interface.c
…
xdiff-interface.h
…

README.md

Build status

Git - fast, scalable, distributed revision control system

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

Git is an Open Source project covered by the GNU General Public License version 2 (some parts of it are under different licenses, compatible with the GPLv2). It was originally written by Linus Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

Many Git online resources are accessible from https://git-scm.com/ including full documentation and Git related tools.

See Documentation/gittutorial.txt to get started, then see Documentation/giteveryday.txt for a useful minimum set of commands, and Documentation/git-<commandname>.txt for documentation of each command. If git has been correctly installed, then the tutorial can also be read with man gittutorial or git help tutorial, and the documentation of each command with man git-<commandname> or git help <commandname>.

CVS users may also want to read Documentation/gitcvs-migration.txt (man gitcvs-migration or git help cvs-migration if git is installed).

The user discussion and development of Git take place on the Git mailing list -- everyone is welcome to post bug reports, feature requests, comments and patches to git@vger.kernel.org (read Documentation/SubmittingPatches for instructions on patch submission and Documentation/CodingGuidelines).

Those wishing to help with error message, usage and informational message string translations (localization l10) should see po/README.md (a po file is a Portable Object file that holds the translations).

To subscribe to the list, send an email to git+subscribe@vger.kernel.org (see https://subspace.kernel.org/subscribing.html for details). The mailing list archives are available at https://lore.kernel.org/git/, https://marc.info/?l=git and other archival sites.

Issues which are security relevant should be disclosed privately to the Git Security mailing list git-security@googlegroups.com.

The maintainer frequently sends the "What's cooking" reports that list the current status of various development topics to the mailing list. The discussion following them give a good reference for project status, development direction and remaining tasks.

The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your mood):

  • random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.
  • stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
  • "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
  • "goddamn idiotic truckload of sh*t": when it breaks