From patchwork Wed Nov 6 15:10:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13865043 Received: from fhigh-a5-smtp.messagingengine.com (fhigh-a5-smtp.messagingengine.com [103.168.172.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCDBD18C03F for ; Wed, 6 Nov 2024 15:10:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.156 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730905833; cv=none; b=nOmfT8xta5J1MeVTJCxyO40JWXqlHOAT+xK/8pqztVkotNgntYs7jIdCn7gYGizYoeiA7XQFqwT4Cc80hdzXGKUBLF0/Se8sCn8tQh5rKbKZkZ8aZW3D/PVsDimpMY5fivdJHCJPgBZm5dJAEFZhdglT8oEejbWEXhEgFnrC2Mk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1730905833; c=relaxed/simple; bh=jrTqvSHwPfeiHuttyYCPRNuW+afVSIEIO1Qnwe9cIv0=; h=Date:From:To:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=GLS9w1GUgS1BFP0V6b0cE0NbA05ilNzm3K171nMqCB9O5K96DEjhwRZJ3YmV8RYO4v6LClb9OSgmxOSGSE4qrrZ1TW5c9ukJ1WBdXBOH1p7/HPc/mZ21NV8IHvLGjKDqMqNVkuJnU6zE4aJiTcdYhVmBDse8qd80u82L3lXS5Xw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=etpFPaAA; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=FVyvF7K0; arc=none smtp.client-ip=103.168.172.156 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="etpFPaAA"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="FVyvF7K0" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfhigh.phl.internal (Postfix) with ESMTP id D10421140151 for ; Wed, 6 Nov 2024 10:10:28 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Wed, 06 Nov 2024 10:10:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc :content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1730905828; x=1730992228; bh=cI4xIVl8YWtJ2ETAu4owju8mreHSeeTJ D/1TDorcruQ=; b=etpFPaAAOl0b85DirK4u/9gkJymq7MmV5Wndzv97srqYZj4t KIdqDmUD5N/WtMhXMXkhRiSHliQaNjONiqyd72Jqwjt9sy+zu0D9k61z30sBVyM0 w/A9NrYm83xUcr5B9bRmTCSEzizXTIbugK9FUSt6T/d2DonQRYjMTdkYV1kuNl7k RXvv1cd9WYI1d0oXBVOnt2BgJCz7tUKtxg/je7yYmzB7rNhjajt+xjhuuoe9MU6M VLsgQ7tYpG9a0z16wnbUZI4V7Sjmf/nwhmeifSxUJw+1hgatkO8+z4vupiL5tZQL a1Eef98IHsPbQXpkZN0mkeazID79SOaWEdAWoA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1730905828; x= 1730992228; bh=cI4xIVl8YWtJ2ETAu4owju8mreHSeeTJD/1TDorcruQ=; b=F VyvF7K0AfJUuPzN48iS+QSu2+15n7xOdA12CI6yvxezED3zZ/j/ELGtJ15+f4EXH OIAu+7RrAs93qxZdqwYP45np9zdjc9+L+8VRi/2polCnAt7Ci7Lmk/8STyxNyHoo 1jvB78cDwZOSYZQbaAsaloPJm7Bxy6QCk41w63MwjsU60UBEXITA93IzeDHhOxYn i7xYRnAGnU1UUV90l3mYy74DPciiQ3BQpNVCR1XQdGn8o9RQh7Iu8BpoqB2ExgsV CEfRc9/t+63XVETYr2ZVd+PCW3Cd9McTmrjGMDOPwM7rJ/hNHS+aQGkBaJKamj1y fuXNFOt7tM7uw5qjY3QqQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrtddvgdejudcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurhepfffhvffukf ggtggusehttdertddttddvnecuhfhrohhmpefrrghtrhhitghkucfuthgvihhnhhgrrhgu thcuoehpshesphhkshdrihhmqeenucggtffrrghtthgvrhhnpedulefgleevhfefjefgfe ekgeevveelffekuedvleeutdefffelfeegiedvheeuhfenucffohhmrghinhephhhtthhp ugdrshhhpdhhthhtphdqshhhrghllhhofidrshhhpdhhthhtphdqphhushhhqdifvggsug grvhdrshhhpdhhthhtphdqphhushhhqdhsmhgrrhhtrdhshhdphhhtthhprdhshhdphhht thhpqdhfvghttghhqdguuhhmsgdrshhhpdhhthhtphdqfhgvthgthhdqshhmrghrthdrsh hhpdhhthhtphdqshhmrghrthdqtghomhhmohhnrdhshhdphhhtthhpqdhgvghtrdhshhdp hhhtthhpqdgsrggtkhgvnhguqdhnohhsvghrvhgvrhdrshhhpdhhthhtphdqsggrtghkvg hnugdrshhhpdhhthhtphdqsggrtghkvghnugdqtghonhhtvghnthdqlhgvnhhgthhhrdhs hhdphhhtthhpqdgruhhthhdrshhhpdhhthhtphdqphhrohighidrshhhpdhhthhtphdqtg hurhhlqdhvvghrsghoshgvrdhshhdphhhtthhpqdhsthgrthhushdrshhhnecuvehluhhs thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhssehpkhhsrdhimh dpnhgspghrtghpthhtohepuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepghhi thesvhhgvghrrdhkvghrnhgvlhdrohhrgh X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 6 Nov 2024 10:10:27 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 31b6e1a0 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Wed, 6 Nov 2024 15:10:01 +0000 (UTC) Date: Wed, 6 Nov 2024 16:10:14 +0100 From: Patrick Steinhardt To: git@vger.kernel.org Subject: [PATCH 00/26] Memory leak fixes (pt.10, final) Message-ID: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline Hi, this is the last part of my series of memory leak fixes. This series goes a bit further than past series: - Patches 1 to 16 plug remaining memory leaks exposed by our test suite. - Patches 17 to 21 remove the last remaining `UNLEAK()` annotations and ultimately remove the macro itself. - Patch 22 works around a bug in the leak sanitizer itself. - Patches 23 and 24 drop annotations where leak-free tests pass with the leak sanitizer. - Patches 25 and 26 unconditionally enable leak checking in all newly added tests and then drop the `TEST_PASSES_SANITIZE_LEAK` annotation. So once this series lands, the expectation is that any newly added test needs to be leak free by default. We still have an escape hatch in the form of the SANITIZE_LEAK prerequisite, but patch authors are expected to provide good arguments why their test cannot be made leak free. This series is built on top of 8f8d6eee53 (The seventh batch, 2024-11-01) with ps/leakfixes-part-9 at c810549be1 (list-objects-filter-options: work around reported leak on error, 2024-11-05) merged into it. The series has some trivial conflicts with the removed test annotations when merging with `seen`. There are two topics in-flight that introduce new memory leaks (ds/path-walk and cc/promisor-remote-capability), both of which are fixed by the below patch. I've sent a message in response to the individual commits that introduce the leaks. Thanks! Patrick Patrick Steinhardt (26): builtin/blame: fix leaking blame entries with `--incremental` bisect: fix leaking good/bad terms when reading multipe times bisect: fix leaking string in `handle_bad_merge_base()` bisect: fix leaking `current_bad_oid` bisect: fix multiple leaks in `bisect_next_all()` bisect: fix leaking commit list items in `check_merge_base()` bisect: fix various cases where we leak commit list items line-log: fix leak when rewriting commit parents strvec: introduce new `strvec_splice()` function git: refactor alias handling to use a `struct strvec` git: refactor builtin handling to use a `struct strvec` split-index: fix memory leak in `move_cache_to_base_index()` builtin/sparse-checkout: fix leaking sanitized patterns help: refactor to not use globals for reading config help: fix leaking `struct cmdnames` help: fix leaking return value from `help_unknown_cmd()` builtin/help: fix leaks in `check_git_cmd()` builtin/init-db: fix leaking directory paths builtin/branch: fix leaking sorting options t/helper: fix leaking commit graph in "read-graph" subcommand git-compat-util: drop `UNLEAK()` annotation t5601: work around leak sanitizer issue t: mark some tests as leak free t: remove unneeded !SANITIZE_LEAK prerequisites test-lib: unconditionally enable leak checking t: remove TEST_PASSES_SANITIZE_LEAK annotations bisect.c | 61 ++++++--- bisect.h | 2 +- blame.c | 1 + blame.h | 2 +- builtin/blame.c | 12 +- builtin/branch.c | 33 +++-- builtin/clone.c | 1 - builtin/diff.c | 1 - builtin/help.c | 13 +- builtin/init-db.c | 30 +++-- builtin/sparse-checkout.c | 61 +++++---- ci/lib.sh | 1 - git-compat-util.h | 20 --- git.c | 124 +++++++++--------- help.c | 76 ++++++----- help.h | 2 +- line-log.c | 1 + revision.c | 4 +- split-index.c | 6 +- strvec.c | 19 +++ strvec.h | 9 ++ t/README | 21 --- t/helper/test-read-graph.c | 3 +- t/lib-git-svn.sh | 4 - t/t0001-init.sh | 1 - t/t0002-gitfile.sh | 1 - t/t0003-attributes.sh | 1 - t/t0004-unwritable.sh | 1 - t/t0005-signals.sh | 1 - t/t0006-date.sh | 1 - t/t0007-git-var.sh | 1 - t/t0008-ignores.sh | 1 - t/t0010-racy-git.sh | 1 - t/t0012-help.sh | 1 - t/t0013-sha1dc.sh | 1 - t/t0017-env-helper.sh | 1 - t/t0018-advice.sh | 1 - t/t0019-json-writer.sh | 1 - t/t0020-crlf.sh | 1 - t/t0021-conversion.sh | 1 - t/t0022-crlf-rename.sh | 1 - t/t0023-crlf-am.sh | 1 - t/t0024-crlf-archive.sh | 1 - t/t0025-crlf-renormalize.sh | 1 - t/t0026-eol-config.sh | 1 - t/t0027-auto-crlf.sh | 1 - t/t0028-working-tree-encoding.sh | 1 - t/t0029-core-unsetenvvars.sh | 1 - t/t0030-stripspace.sh | 1 - t/t0033-safe-directory.sh | 1 - t/t0035-safe-bare-repository.sh | 1 - t/t0040-parse-options.sh | 1 - t/t0041-usage.sh | 1 - t/t0050-filesystem.sh | 1 - t/t0052-simple-ipc.sh | 1 - t/t0055-beyond-symlinks.sh | 1 - t/t0056-git-C.sh | 1 - t/t0060-path-utils.sh | 1 - t/t0061-run-command.sh | 1 - t/t0062-revision-walking.sh | 1 - t/t0063-string-list.sh | 1 - t/t0066-dir-iterator.sh | 1 - t/t0067-parse_pathspec_file.sh | 1 - t/t0068-for-each-repo.sh | 1 - t/t0070-fundamental.sh | 1 - t/t0071-sort.sh | 1 - t/t0080-unit-test-output.sh | 1 - t/t0081-find-pack.sh | 1 - t/t0090-cache-tree.sh | 1 - t/t0091-bugreport.sh | 1 - t/t0092-diagnose.sh | 1 - t/t0095-bloom.sh | 3 +- t/t0100-previous.sh | 1 - t/t0101-at-syntax.sh | 1 - t/t0200-gettext-basic.sh | 1 - t/t0201-gettext-fallbacks.sh | 1 - t/t0202-gettext-perl.sh | 1 - t/t0203-gettext-setlocale-sanity.sh | 1 - t/t0204-gettext-reencode-sanity.sh | 1 - t/t0210-trace2-normal.sh | 1 - t/t0211-trace2-perf.sh | 1 - t/t0212-trace2-event.sh | 1 - t/t0300-credentials.sh | 1 - t/t0301-credential-cache.sh | 1 - t/t0302-credential-store.sh | 1 - t/t0303-credential-external.sh | 1 - t/t0410-partial-clone.sh | 1 - t/t0411-clone-from-partial.sh | 1 - t/t0450-txt-doc-vs-help.sh | 1 - t/t0500-progress-display.sh | 1 - t/t0600-reffiles-backend.sh | 1 - t/t0601-reffiles-pack-refs.sh | 1 - t/t0602-reffiles-fsck.sh | 1 - t/t0610-reftable-basics.sh | 1 - t/t0611-reftable-httpd.sh | 1 - t/t0612-reftable-jgit-compatibility.sh | 1 - t/t0613-reftable-write-options.sh | 1 - t/t1000-read-tree-m-3way.sh | 1 - t/t1001-read-tree-m-2way.sh | 1 - t/t1002-read-tree-m-u-2way.sh | 1 - t/t1003-read-tree-prefix.sh | 1 - t/t1004-read-tree-m-u-wf.sh | 1 - t/t1005-read-tree-reset.sh | 1 - t/t1006-cat-file.sh | 1 - t/t1007-hash-object.sh | 1 - t/t1008-read-tree-overlay.sh | 1 - t/t1009-read-tree-new-index.sh | 1 - t/t1010-mktree.sh | 1 - t/t1011-read-tree-sparse-checkout.sh | 1 - t/t1012-read-tree-df.sh | 1 - t/t1013-read-tree-submodule.sh | 1 - t/t1014-read-tree-confusing.sh | 1 - t/t1015-read-index-unmerged.sh | 1 - t/t1016-compatObjectFormat.sh | 1 - t/t1020-subdirectory.sh | 1 - t/t1021-rerere-in-workdir.sh | 1 - t/t1022-read-tree-partial-clone.sh | 1 - t/t1050-large.sh | 1 - t/t1051-large-conversion.sh | 1 - t/t1060-object-corruption.sh | 1 - t/t1090-sparse-checkout-scope.sh | 1 - t/t1091-sparse-checkout-builtin.sh | 1 - t/t1092-sparse-checkout-compatibility.sh | 1 - t/t1100-commit-tree-options.sh | 1 - t/t1300-config.sh | 1 - t/t1301-shared-repo.sh | 1 - t/t1302-repo-version.sh | 1 - t/t1303-wacky-config.sh | 1 - t/t1304-default-acl.sh | 1 - t/t1305-config-include.sh | 1 - t/t1306-xdg-files.sh | 1 - t/t1307-config-blob.sh | 1 - t/t1308-config-set.sh | 1 - t/t1309-early-config.sh | 1 - t/t1310-config-default.sh | 1 - t/t1350-config-hooks-path.sh | 1 - t/t1400-update-ref.sh | 1 - t/t1401-symbolic-ref.sh | 1 - t/t1402-check-ref-format.sh | 1 - t/t1403-show-ref.sh | 1 - t/t1404-update-ref-errors.sh | 1 - t/t1405-main-ref-store.sh | 1 - t/t1406-submodule-ref-store.sh | 1 - t/t1407-worktree-ref-store.sh | 1 - t/t1408-packed-refs.sh | 1 - t/t1409-avoid-packing-refs.sh | 1 - t/t1410-reflog.sh | 1 - t/t1411-reflog-show.sh | 1 - t/t1412-reflog-loop.sh | 1 - t/t1413-reflog-detach.sh | 1 - t/t1414-reflog-walk.sh | 1 - t/t1415-worktree-refs.sh | 1 - t/t1416-ref-transaction-hooks.sh | 1 - t/t1417-reflog-updateref.sh | 1 - t/t1418-reflog-exists.sh | 1 - t/t1419-exclude-refs.sh | 1 - t/t1420-lost-found.sh | 1 - t/t1430-bad-ref-name.sh | 1 - t/t1450-fsck.sh | 1 - t/t1451-fsck-buffer.sh | 1 - t/t1460-refs-migrate.sh | 1 - t/t1500-rev-parse.sh | 1 - t/t1501-work-tree.sh | 1 - t/t1502-rev-parse-parseopt.sh | 1 - t/t1503-rev-parse-verify.sh | 1 - t/t1504-ceiling-dirs.sh | 1 - t/t1505-rev-parse-last.sh | 1 - t/t1506-rev-parse-diagnosis.sh | 1 - t/t1507-rev-parse-upstream.sh | 1 - t/t1508-at-combinations.sh | 1 - t/t1510-repo-setup.sh | 1 - t/t1511-rev-parse-caret.sh | 1 - t/t1512-rev-parse-disambiguation.sh | 1 - t/t1513-rev-parse-prefix.sh | 1 - t/t1514-rev-parse-push.sh | 1 - t/t1515-rev-parse-outside-repo.sh | 1 - t/t1517-outside-repo.sh | 1 - t/t1600-index.sh | 1 - t/t1601-index-bogus.sh | 1 - t/t1701-racy-split-index.sh | 1 - t/t1800-hook.sh | 1 - t/t2000-conflict-when-checking-files-out.sh | 1 - t/t2002-checkout-cache-u.sh | 1 - t/t2003-checkout-cache-mkdir.sh | 1 - t/t2004-checkout-cache-temp.sh | 1 - t/t2005-checkout-index-symlinks.sh | 1 - t/t2006-checkout-index-basic.sh | 1 - t/t2007-checkout-symlink.sh | 1 - t/t2008-checkout-subdir.sh | 1 - t/t2009-checkout-statinfo.sh | 1 - t/t2010-checkout-ambiguous.sh | 1 - t/t2011-checkout-invalid-head.sh | 1 - t/t2012-checkout-last.sh | 1 - t/t2013-checkout-submodule.sh | 1 - t/t2014-checkout-switch.sh | 1 - t/t2015-checkout-unborn.sh | 1 - t/t2016-checkout-patch.sh | 1 - t/t2017-checkout-orphan.sh | 1 - t/t2018-checkout-branch.sh | 1 - t/t2019-checkout-ambiguous-ref.sh | 1 - t/t2020-checkout-detach.sh | 1 - t/t2021-checkout-overwrite.sh | 1 - t/t2022-checkout-paths.sh | 1 - t/t2023-checkout-m.sh | 1 - t/t2024-checkout-dwim.sh | 1 - t/t2025-checkout-no-overlay.sh | 1 - t/t2026-checkout-pathspec-file.sh | 1 - t/t2027-checkout-track.sh | 1 - t/t2030-unresolve-info.sh | 1 - t/t2050-git-dir-relative.sh | 1 - t/t2060-switch.sh | 1 - t/t2070-restore.sh | 1 - t/t2071-restore-patch.sh | 1 - t/t2072-restore-pathspec-file.sh | 1 - t/t2080-parallel-checkout-basics.sh | 1 - t/t2081-parallel-checkout-collisions.sh | 1 - t/t2082-parallel-checkout-attributes.sh | 1 - t/t2100-update-cache-badpath.sh | 1 - t/t2101-update-index-reupdate.sh | 1 - t/t2102-update-index-symlinks.sh | 1 - t/t2103-update-index-ignore-missing.sh | 1 - t/t2104-update-index-skip-worktree.sh | 1 - t/t2105-update-index-gitfile.sh | 1 - t/t2106-update-index-assume-unchanged.sh | 1 - t/t2107-update-index-basic.sh | 1 - t/t2108-update-index-refresh-racy.sh | 1 - t/t2200-add-update.sh | 1 - t/t2201-add-update-typechange.sh | 1 - t/t2202-add-addremove.sh | 1 - t/t2203-add-intent.sh | 1 - t/t2204-add-ignored.sh | 1 - t/t2205-add-worktree-config.sh | 1 - t/t2300-cd-to-toplevel.sh | 1 - t/t2400-worktree-add.sh | 1 - t/t2401-worktree-prune.sh | 1 - t/t2402-worktree-list.sh | 1 - t/t2403-worktree-move.sh | 1 - t/t2404-worktree-config.sh | 1 - t/t2405-worktree-submodule.sh | 1 - t/t2406-worktree-repair.sh | 1 - t/t2407-worktree-heads.sh | 17 ++- t/t2408-worktree-relative.sh | 1 - t/t2500-untracked-overwriting.sh | 1 - t/t2501-cwd-empty.sh | 1 - t/t3000-ls-files-others.sh | 1 - t/t3001-ls-files-others-exclude.sh | 1 - t/t3002-ls-files-dashpath.sh | 1 - t/t3003-ls-files-exclude.sh | 1 - t/t3004-ls-files-basic.sh | 1 - t/t3005-ls-files-relative.sh | 1 - t/t3006-ls-files-long.sh | 1 - t/t3007-ls-files-recurse-submodules.sh | 1 - t/t3008-ls-files-lazy-init-name-hash.sh | 1 - t/t3009-ls-files-others-nonsubmodule.sh | 1 - t/t3010-ls-files-killed-modified.sh | 1 - ...common-prefixes-and-directory-traversal.sh | 1 - t/t3012-ls-files-dedup.sh | 1 - t/t3013-ls-files-format.sh | 1 - t/t3020-ls-files-error-unmatch.sh | 1 - t/t3040-subprojects-basic.sh | 1 - t/t3050-subprojects-fetch.sh | 1 - t/t3060-ls-files-with-tree.sh | 1 - t/t3070-wildmatch.sh | 1 - t/t3100-ls-tree-restrict.sh | 1 - t/t3101-ls-tree-dirname.sh | 1 - t/t3102-ls-tree-wildcards.sh | 1 - t/t3103-ls-tree-misc.sh | 1 - t/t3104-ls-tree-format.sh | 1 - t/t3105-ls-tree-output.sh | 1 - t/t3200-branch.sh | 1 - t/t3201-branch-contains.sh | 1 - t/t3202-show-branch.sh | 1 - t/t3203-branch-output.sh | 1 - t/t3204-branch-name-interpretation.sh | 1 - t/t3205-branch-color.sh | 1 - t/t3206-range-diff.sh | 1 - t/t3207-branch-submodule.sh | 1 - t/t3211-peel-ref.sh | 1 - t/t3300-funny-names.sh | 1 - t/t3301-notes.sh | 1 - t/t3302-notes-index-expensive.sh | 1 - t/t3303-notes-subtrees.sh | 1 - t/t3304-notes-mixed.sh | 1 - t/t3305-notes-fanout.sh | 1 - t/t3306-notes-prune.sh | 1 - t/t3307-notes-man.sh | 1 - t/t3308-notes-merge.sh | 1 - t/t3309-notes-merge-auto-resolve.sh | 1 - t/t3310-notes-merge-manual-resolve.sh | 1 - t/t3311-notes-merge-fanout.sh | 1 - t/t3320-notes-merge-worktrees.sh | 1 - t/t3321-notes-stripspace.sh | 1 - t/t3400-rebase.sh | 1 - t/t3401-rebase-and-am-rename.sh | 1 - t/t3402-rebase-merge.sh | 1 - t/t3403-rebase-skip.sh | 1 - t/t3404-rebase-interactive.sh | 1 - t/t3405-rebase-malformed.sh | 1 - t/t3406-rebase-message.sh | 1 - t/t3407-rebase-abort.sh | 1 - t/t3408-rebase-multi-line.sh | 1 - t/t3409-rebase-environ.sh | 1 - t/t3412-rebase-root.sh | 1 - t/t3413-rebase-hook.sh | 1 - t/t3415-rebase-autosquash.sh | 1 - t/t3416-rebase-onto-threedots.sh | 1 - t/t3417-rebase-whitespace-fix.sh | 1 - t/t3418-rebase-continue.sh | 1 - t/t3419-rebase-patch-id.sh | 1 - t/t3420-rebase-autostash.sh | 1 - t/t3421-rebase-topology-linear.sh | 1 - t/t3422-rebase-incompatible-options.sh | 1 - t/t3423-rebase-reword.sh | 1 - t/t3424-rebase-empty.sh | 1 - t/t3425-rebase-topology-merges.sh | 1 - t/t3426-rebase-submodule.sh | 1 - t/t3427-rebase-subtree.sh | 1 - t/t3428-rebase-signoff.sh | 1 - t/t3429-rebase-edit-todo.sh | 1 - t/t3430-rebase-merges.sh | 1 - t/t3431-rebase-fork-point.sh | 1 - t/t3432-rebase-fast-forward.sh | 1 - t/t3433-rebase-across-mode-change.sh | 1 - t/t3434-rebase-i18n.sh | 1 - t/t3435-rebase-gpg-sign.sh | 1 - t/t3436-rebase-more-options.sh | 1 - t/t3437-rebase-fixup-options.sh | 1 - t/t3438-rebase-broken-files.sh | 1 - t/t3500-cherry.sh | 1 - t/t3501-revert-cherry-pick.sh | 1 - t/t3502-cherry-pick-merge.sh | 1 - t/t3503-cherry-pick-root.sh | 1 - t/t3504-cherry-pick-rerere.sh | 1 - t/t3505-cherry-pick-empty.sh | 1 - t/t3506-cherry-pick-ff.sh | 1 - t/t3507-cherry-pick-conflict.sh | 1 - t/t3508-cherry-pick-many-commits.sh | 1 - t/t3509-cherry-pick-merge-df.sh | 1 - t/t3510-cherry-pick-sequence.sh | 1 - t/t3511-cherry-pick-x.sh | 1 - t/t3512-cherry-pick-submodule.sh | 1 - t/t3513-revert-submodule.sh | 1 - t/t3514-cherry-pick-revert-gpg.sh | 1 - t/t3600-rm.sh | 1 - t/t3601-rm-pathspec-file.sh | 1 - t/t3602-rm-sparse-checkout.sh | 1 - t/t3650-replay-basics.sh | 1 - t/t3700-add.sh | 1 - t/t3701-add-interactive.sh | 1 - t/t3702-add-edit.sh | 1 - t/t3703-add-magic-pathspec.sh | 1 - t/t3704-add-pathspec-file.sh | 1 - t/t3705-add-sparse-checkout.sh | 1 - t/t3800-mktag.sh | 1 - t/t3900-i18n-commit.sh | 1 - t/t3901-i18n-patch.sh | 1 - t/t3902-quoted.sh | 1 - t/t3903-stash.sh | 1 - t/t3904-stash-patch.sh | 1 - t/t3905-stash-include-untracked.sh | 1 - t/t3906-stash-submodule.sh | 1 - t/t3907-stash-show-config.sh | 1 - t/t3908-stash-in-worktree.sh | 1 - t/t3909-stash-pathspec-file.sh | 1 - t/t3920-crlf-messages.sh | 1 - t/t4000-diff-format.sh | 1 - t/t4001-diff-rename.sh | 1 - t/t4002-diff-basic.sh | 1 - t/t4003-diff-rename-1.sh | 1 - t/t4004-diff-rename-symlink.sh | 1 - t/t4005-diff-rename-2.sh | 1 - t/t4006-diff-mode.sh | 1 - t/t4007-rename-3.sh | 1 - t/t4008-diff-break-rewrite.sh | 1 - t/t4009-diff-rename-4.sh | 1 - t/t4010-diff-pathspec.sh | 1 - t/t4011-diff-symlink.sh | 1 - t/t4012-diff-binary.sh | 1 - t/t4013-diff-various.sh | 1 - t/t4014-format-patch.sh | 1 - t/t4015-diff-whitespace.sh | 1 - t/t4016-diff-quote.sh | 1 - t/t4017-diff-retval.sh | 1 - t/t4018-diff-funcname.sh | 1 - t/t4019-diff-wserror.sh | 1 - t/t4020-diff-external.sh | 5 +- t/t4021-format-patch-numbered.sh | 1 - t/t4022-diff-rewrite.sh | 1 - t/t4023-diff-rename-typechange.sh | 1 - t/t4024-diff-optimize-common.sh | 1 - t/t4025-hunk-header.sh | 1 - t/t4026-color.sh | 1 - t/t4027-diff-submodule.sh | 1 - t/t4028-format-patch-mime-headers.sh | 1 - t/t4029-diff-trailing-space.sh | 1 - t/t4030-diff-textconv.sh | 1 - t/t4031-diff-rewrite-binary.sh | 1 - t/t4032-diff-inter-hunk-context.sh | 1 - t/t4033-diff-patience.sh | 1 - t/t4034-diff-words.sh | 1 - t/t4035-diff-quiet.sh | 1 - t/t4036-format-patch-signer-mime.sh | 1 - t/t4037-diff-r-t-dirs.sh | 1 - t/t4038-diff-combined.sh | 1 - t/t4039-diff-assume-unchanged.sh | 1 - t/t4040-whitespace-status.sh | 1 - t/t4041-diff-submodule-option.sh | 1 - t/t4042-diff-textconv-caching.sh | 1 - t/t4043-diff-rename-binary.sh | 1 - t/t4044-diff-index-unique-abbrev.sh | 1 - t/t4045-diff-relative.sh | 1 - t/t4046-diff-unmerged.sh | 1 - t/t4047-diff-dirstat.sh | 1 - t/t4048-diff-combined-binary.sh | 1 - t/t4049-diff-stat-count.sh | 1 - t/t4050-diff-histogram.sh | 1 - t/t4051-diff-function-context.sh | 1 - t/t4052-stat-output.sh | 1 - t/t4053-diff-no-index.sh | 1 - t/t4054-diff-bogus-tree.sh | 1 - t/t4055-diff-context.sh | 1 - t/t4056-diff-order.sh | 1 - t/t4057-diff-combined-paths.sh | 1 - t/t4058-diff-duplicates.sh | 1 - t/t4059-diff-submodule-not-initialized.sh | 1 - t/t4060-diff-submodule-option-diff-format.sh | 1 - t/t4061-diff-indent.sh | 1 - t/t4062-diff-pickaxe.sh | 1 - t/t4063-diff-blobs.sh | 1 - t/t4064-diff-oidfind.sh | 1 - t/t4065-diff-anchored.sh | 1 - t/t4066-diff-emit-delay.sh | 1 - t/t4067-diff-partial-clone.sh | 1 - t/t4068-diff-symmetric-merge-base.sh | 1 - t/t4069-remerge-diff.sh | 1 - t/t4100-apply-stat.sh | 1 - t/t4101-apply-nonl.sh | 1 - t/t4102-apply-rename.sh | 1 - t/t4103-apply-binary.sh | 1 - t/t4104-apply-boundary.sh | 1 - t/t4105-apply-fuzz.sh | 1 - t/t4106-apply-stdin.sh | 1 - t/t4107-apply-ignore-whitespace.sh | 1 - t/t4108-apply-threeway.sh | 1 - t/t4109-apply-multifrag.sh | 1 - t/t4110-apply-scan.sh | 1 - t/t4111-apply-subdir.sh | 1 - t/t4112-apply-renames.sh | 1 - t/t4113-apply-ending.sh | 1 - t/t4114-apply-typechange.sh | 1 - t/t4115-apply-symlink.sh | 1 - t/t4116-apply-reverse.sh | 1 - t/t4117-apply-reject.sh | 1 - t/t4118-apply-empty-context.sh | 1 - t/t4119-apply-config.sh | 1 - t/t4120-apply-popt.sh | 1 - t/t4121-apply-diffs.sh | 1 - t/t4122-apply-symlink-inside.sh | 1 - t/t4123-apply-shrink.sh | 1 - t/t4124-apply-ws-rule.sh | 1 - t/t4125-apply-ws-fuzz.sh | 1 - t/t4126-apply-empty.sh | 1 - t/t4127-apply-same-fn.sh | 1 - t/t4128-apply-root.sh | 1 - t/t4129-apply-samemode.sh | 1 - t/t4130-apply-criss-cross-rename.sh | 1 - t/t4131-apply-fake-ancestor.sh | 1 - t/t4132-apply-removal.sh | 1 - t/t4133-apply-filenames.sh | 1 - t/t4134-apply-submodule.sh | 1 - t/t4135-apply-weird-filenames.sh | 1 - t/t4136-apply-check.sh | 1 - t/t4137-apply-submodule.sh | 1 - t/t4138-apply-ws-expansion.sh | 1 - t/t4139-apply-escape.sh | 1 - t/t4140-apply-ita.sh | 1 - t/t4141-apply-too-large.sh | 1 - t/t4150-am.sh | 1 - t/t4151-am-abort.sh | 1 - t/t4152-am-subjects.sh | 1 - t/t4153-am-resume-override-opts.sh | 1 - t/t4200-rerere.sh | 1 - t/t4201-shortlog.sh | 1 - t/t4202-log.sh | 1 - t/t4203-mailmap.sh | 1 - t/t4204-patch-id.sh | 1 - t/t4205-log-pretty-formats.sh | 1 - t/t4206-log-follow-harder-copies.sh | 1 - t/t4207-log-decoration-colors.sh | 1 - t/t4208-log-magic-pathspec.sh | 1 - t/t4209-log-pickaxe.sh | 1 - t/t4210-log-i18n.sh | 1 - t/t4212-log-corrupt.sh | 1 - t/t4213-log-tabexpand.sh | 1 - t/t4214-log-graph-octopus.sh | 1 - t/t4215-log-skewed-merges.sh | 1 - t/t4216-log-bloom.sh | 1 - t/t4217-log-limit.sh | 1 - t/t4252-am-options.sh | 1 - t/t4253-am-keep-cr-dos.sh | 1 - t/t4254-am-corrupt.sh | 1 - t/t4255-am-submodule.sh | 1 - t/t4256-am-format-flowed.sh | 1 - t/t4257-am-interactive.sh | 1 - t/t4258-am-quoted-cr.sh | 1 - t/t4300-merge-tree.sh | 1 - t/t4301-merge-tree-write-tree.sh | 1 - t/t5000-tar-tree.sh | 1 - t/t5001-archive-attr.sh | 1 - t/t5002-archive-attr-pattern.sh | 1 - t/t5003-archive-zip.sh | 1 - t/t5004-archive-corner-cases.sh | 1 - t/t5100-mailinfo.sh | 1 - t/t5150-request-pull.sh | 1 - t/t5200-update-server-info.sh | 1 - t/t5300-pack-object.sh | 1 - t/t5301-sliding-window.sh | 1 - t/t5302-pack-index.sh | 1 - t/t5303-pack-corruption-resilience.sh | 1 - t/t5304-prune.sh | 1 - t/t5305-include-tag.sh | 1 - t/t5306-pack-nobase.sh | 1 - t/t5307-pack-missing-commit.sh | 1 - t/t5308-pack-detect-duplicates.sh | 1 - t/t5309-pack-delta-cycles.sh | 1 - t/t5310-pack-bitmaps.sh | 1 - t/t5311-pack-bitmaps-shallow.sh | 1 - t/t5312-prune-corruption.sh | 1 - t/t5313-pack-bounds-checks.sh | 1 - t/t5314-pack-cycle-detection.sh | 1 - t/t5315-pack-objects-compression.sh | 1 - t/t5316-pack-delta-depth.sh | 1 - t/t5317-pack-objects-filter-objects.sh | 1 - t/t5318-commit-graph.sh | 1 - t/t5319-multi-pack-index.sh | 1 - t/t5320-delta-islands.sh | 1 - t/t5321-pack-large-objects.sh | 1 - t/t5322-pack-objects-sparse.sh | 1 - t/t5323-pack-redundant.sh | 1 - t/t5324-split-commit-graph.sh | 1 - t/t5325-reverse-index.sh | 1 - t/t5326-multi-pack-bitmaps.sh | 1 - t/t5327-multi-pack-bitmaps-rev.sh | 1 - t/t5328-commit-graph-64bit-time.sh | 1 - t/t5329-pack-objects-cruft.sh | 1 - t/t5330-no-lazy-fetch-with-commit-graph.sh | 1 - t/t5331-pack-objects-stdin.sh | 1 - t/t5332-multi-pack-reuse.sh | 1 - t/t5333-pseudo-merge-bitmaps.sh | 1 - t/t5334-incremental-multi-pack-index.sh | 1 - t/t5351-unpack-large-objects.sh | 1 - t/t5400-send-pack.sh | 1 - t/t5401-update-hooks.sh | 1 - t/t5402-post-merge-hook.sh | 1 - t/t5403-post-checkout-hook.sh | 1 - t/t5404-tracking-branches.sh | 1 - t/t5405-send-pack-rewind.sh | 1 - t/t5406-remote-rejects.sh | 1 - t/t5407-post-rewrite-hook.sh | 1 - t/t5408-send-pack-stdin.sh | 1 - t/t5409-colorize-remote-messages.sh | 1 - t/t5410-receive-pack-alternates.sh | 1 - t/t5411-proc-receive-hook.sh | 1 - t/t5500-fetch-pack.sh | 1 - t/t5501-fetch-push-alternates.sh | 1 - t/t5502-quickfetch.sh | 1 - t/t5503-tagfollow.sh | 1 - t/t5504-fetch-receive-strict.sh | 1 - t/t5505-remote.sh | 1 - t/t5506-remote-groups.sh | 1 - t/t5507-remote-environment.sh | 1 - t/t5509-fetch-push-namespaces.sh | 1 - t/t5510-fetch.sh | 1 - t/t5511-refspec.sh | 1 - t/t5512-ls-remote.sh | 1 - t/t5513-fetch-track.sh | 1 - t/t5514-fetch-multiple.sh | 1 - t/t5515-fetch-merge-logic.sh | 1 - t/t5516-fetch-push.sh | 1 - t/t5517-push-mirror.sh | 1 - t/t5518-fetch-exit-status.sh | 1 - t/t5519-push-alternates.sh | 1 - t/t5520-pull.sh | 1 - t/t5521-pull-options.sh | 1 - t/t5522-pull-symlink.sh | 1 - t/t5523-push-upstream.sh | 1 - t/t5524-pull-msg.sh | 1 - t/t5525-fetch-tagopt.sh | 1 - t/t5526-fetch-submodules.sh | 1 - t/t5527-fetch-odd-refs.sh | 1 - t/t5528-push-default.sh | 1 - t/t5529-push-errors.sh | 1 - t/t5530-upload-pack-error.sh | 1 - t/t5531-deep-submodule-push.sh | 1 - t/t5532-fetch-proxy.sh | 1 - t/t5533-push-cas.sh | 1 - t/t5534-push-signed.sh | 1 - t/t5535-fetch-push-symref.sh | 1 - t/t5536-fetch-conflicts.sh | 1 - t/t5537-fetch-shallow.sh | 1 - t/t5538-push-shallow.sh | 1 - t/t5539-fetch-http-shallow.sh | 1 - t/t5540-http-push-webdav.sh | 1 - t/t5541-http-push-smart.sh | 1 - t/t5542-push-http-shallow.sh | 1 - t/t5543-atomic-push.sh | 1 - t/t5544-pack-objects-hook.sh | 1 - t/t5545-push-options.sh | 1 - t/t5546-receive-limits.sh | 1 - t/t5547-push-quarantine.sh | 1 - t/t5548-push-porcelain.sh | 1 - t/t5549-fetch-push-http.sh | 1 - t/t5550-http-fetch-dumb.sh | 1 - t/t5551-http-fetch-smart.sh | 1 - t/t5552-skipping-fetch-negotiator.sh | 1 - t/t5553-set-upstream.sh | 1 - t/t5554-noop-fetch-negotiator.sh | 1 - t/t5555-http-smart-common.sh | 1 - t/t5557-http-get.sh | 1 - t/t5560-http-backend-noserver.sh | 1 - t/t5561-http-backend.sh | 1 - t/t5562-http-backend-content-length.sh | 1 - t/t5563-simple-http-auth.sh | 1 - t/t5564-http-proxy.sh | 1 - t/t5570-git-daemon.sh | 1 - t/t5571-pre-push-hook.sh | 1 - t/t5572-pull-submodule.sh | 1 - t/t5573-pull-verify-signatures.sh | 1 - t/t5574-fetch-output.sh | 1 - t/t5580-unc-paths.sh | 1 - t/t5581-http-curl-verbose.sh | 1 - t/t5582-fetch-negative-refspec.sh | 1 - t/t5583-push-branches.sh | 1 - t/t5600-clone-fail-cleanup.sh | 1 - t/t5601-clone.sh | 26 ++-- t/t5602-clone-remote-exec.sh | 1 - t/t5603-clone-dirname.sh | 1 - t/t5604-clone-reference.sh | 1 - t/t5605-clone-local.sh | 1 - t/t5606-clone-options.sh | 1 - t/t5607-clone-bundle.sh | 1 - t/t5609-clone-branch.sh | 1 - t/t5610-clone-detached.sh | 1 - t/t5611-clone-config.sh | 1 - t/t5612-clone-refspec.sh | 1 - t/t5613-info-alternate.sh | 1 - t/t5614-clone-submodules-shallow.sh | 1 - t/t5615-alternate-env.sh | 1 - t/t5616-partial-clone.sh | 1 - t/t5617-clone-submodules-remote.sh | 1 - t/t5618-alternate-refs.sh | 1 - t/t5619-clone-local-ambiguous-transport.sh | 1 - t/t5700-protocol-v1.sh | 1 - t/t5701-git-serve.sh | 1 - t/t5702-protocol-v2.sh | 1 - t/t5703-upload-pack-ref-in-want.sh | 1 - t/t5704-protocol-violations.sh | 1 - t/t5705-session-id-in-capabilities.sh | 1 - t/t5730-protocol-v2-bundle-uri-file.sh | 1 - t/t5731-protocol-v2-bundle-uri-git.sh | 1 - t/t5732-protocol-v2-bundle-uri-http.sh | 1 - t/t5750-bundle-uri-parse.sh | 1 - t/t5801-remote-helpers.sh | 1 - t/t5802-connect-helper.sh | 1 - t/t5810-proto-disable-local.sh | 1 - t/t5811-proto-disable-git.sh | 1 - t/t5812-proto-disable-http.sh | 1 - t/t5813-proto-disable-ssh.sh | 1 - t/t5814-proto-disable-ext.sh | 1 - t/t5815-submodule-protos.sh | 1 - t/t5900-repo-selection.sh | 1 - t/t6000-rev-list-misc.sh | 1 - t/t6001-rev-list-graft.sh | 1 - t/t6002-rev-list-bisect.sh | 1 - t/t6003-rev-list-topo-order.sh | 1 - t/t6004-rev-list-path-optim.sh | 1 - t/t6005-rev-list-count.sh | 1 - t/t6006-rev-list-format.sh | 1 - t/t6007-rev-list-cherry-pick-file.sh | 1 - t/t6008-rev-list-submodule.sh | 1 - t/t6009-rev-list-parent.sh | 1 - t/t6010-merge-base.sh | 1 - t/t6011-rev-list-with-bad-commit.sh | 1 - t/t6012-rev-list-simplify.sh | 1 - t/t6013-rev-list-reverse-parents.sh | 1 - t/t6014-rev-list-all.sh | 1 - t/t6016-rev-list-graph-simplify-history.sh | 1 - t/t6017-rev-list-stdin.sh | 1 - t/t6018-rev-list-glob.sh | 1 - t/t6019-rev-list-ancestry-path.sh | 1 - t/t6020-bundle-misc.sh | 1 - t/t6021-rev-list-exclude-hidden.sh | 1 - t/t6022-rev-list-missing.sh | 1 - t/t6040-tracking-info.sh | 1 - t/t6041-bisect-submodule.sh | 1 - t/t6050-replace.sh | 1 - t/t6060-merge-index.sh | 1 - t/t6100-rev-list-in-order.sh | 1 - t/t6101-rev-parse-parents.sh | 1 - t/t6102-rev-list-unexpected-objects.sh | 1 - t/t6110-rev-list-sparse.sh | 1 - t/t6111-rev-list-treesame.sh | 1 - t/t6112-rev-list-filters-objects.sh | 1 - t/t6113-rev-list-bitmap-filters.sh | 1 - t/t6114-keep-packs.sh | 1 - t/t6115-rev-list-du.sh | 1 - t/t6120-describe.sh | 1 - t/t6130-pathspec-noglob.sh | 1 - t/t6131-pathspec-icase.sh | 1 - t/t6132-pathspec-exclude.sh | 1 - t/t6133-pathspec-rev-dwim.sh | 1 - t/t6134-pathspec-in-submodule.sh | 1 - t/t6135-pathspec-with-attrs.sh | 1 - t/t6136-pathspec-in-bare.sh | 1 - t/t6200-fmt-merge-msg.sh | 1 - t/t6300-for-each-ref.sh | 1 - t/t6301-for-each-ref-errors.sh | 1 - t/t6302-for-each-ref-filter.sh | 1 - t/t6400-merge-df.sh | 1 - t/t6401-merge-criss-cross.sh | 1 - t/t6402-merge-rename.sh | 1 - t/t6403-merge-file.sh | 1 - t/t6404-recursive-merge.sh | 1 - t/t6405-merge-symlinks.sh | 1 - t/t6406-merge-attr.sh | 1 - t/t6407-merge-binary.sh | 1 - t/t6408-merge-up-to-date.sh | 1 - t/t6409-merge-subtree.sh | 1 - t/t6411-merge-filemode.sh | 1 - t/t6412-merge-large-rename.sh | 1 - t/t6413-merge-crlf.sh | 1 - t/t6414-merge-rename-nocruft.sh | 1 - t/t6415-merge-dir-to-symlink.sh | 1 - t/t6416-recursive-corner-cases.sh | 1 - t/t6417-merge-ours-theirs.sh | 1 - t/t6418-merge-text-auto.sh | 1 - t/t6421-merge-partial-clone.sh | 1 - t/t6422-merge-rename-corner-cases.sh | 1 - t/t6423-merge-rename-directories.sh | 1 - t/t6424-merge-unrelated-index-changes.sh | 1 - t/t6425-merge-rename-delete.sh | 1 - t/t6426-merge-skip-unneeded-updates.sh | 1 - t/t6427-diff3-conflict-markers.sh | 1 - t/t6428-merge-conflicts-sparse.sh | 1 - t/t6429-merge-sequence-rename-caching.sh | 1 - t/t6430-merge-recursive.sh | 1 - t/t6431-merge-criscross.sh | 1 - t/t6432-merge-recursive-space-options.sh | 1 - t/t6433-merge-toplevel.sh | 1 - t/t6434-merge-recursive-rename-options.sh | 1 - t/t6435-merge-sparse.sh | 1 - t/t6436-merge-overwrite.sh | 1 - t/t6437-submodule-merge.sh | 1 - t/t6438-submodule-directory-file-conflicts.sh | 1 - t/t6439-merge-co-error-msgs.sh | 1 - t/t6500-gc.sh | 1 - t/t6501-freshen-objects.sh | 1 - t/t6600-test-reach.sh | 1 - t/t6700-tree-depth.sh | 1 - t/t7001-mv.sh | 1 - t/t7002-mv-sparse-checkout.sh | 1 - t/t7003-filter-branch.sh | 1 - t/t7004-tag.sh | 1 - t/t7005-editor.sh | 1 - t/t7006-pager.sh | 1 - t/t7007-show.sh | 1 - t/t7008-filter-branch-null-sha1.sh | 1 - t/t7010-setup.sh | 1 - t/t7011-skip-worktree-reading.sh | 1 - t/t7012-skip-worktree-writing.sh | 1 - t/t7030-verify-tag.sh | 1 - t/t7031-verify-tag-signed-ssh.sh | 1 - t/t7060-wtstatus.sh | 1 - t/t7061-wtstatus-ignore.sh | 1 - t/t7062-wtstatus-ignorecase.sh | 1 - t/t7063-status-untracked-cache.sh | 1 - t/t7064-wtstatus-pv2.sh | 1 - t/t7101-reset-empty-subdirs.sh | 1 - t/t7102-reset.sh | 1 - t/t7103-reset-bare.sh | 1 - t/t7104-reset-hard.sh | 1 - t/t7105-reset-patch.sh | 1 - t/t7106-reset-unborn-branch.sh | 1 - t/t7107-reset-pathspec-file.sh | 1 - t/t7110-reset-merge.sh | 1 - t/t7111-reset-table.sh | 1 - t/t7112-reset-submodule.sh | 1 - t/t7113-post-index-change-hook.sh | 1 - t/t7201-co.sh | 1 - t/t7300-clean.sh | 1 - t/t7301-clean-interactive.sh | 1 - t/t7400-submodule-basic.sh | 1 - t/t7401-submodule-summary.sh | 1 - t/t7402-submodule-rebase.sh | 1 - t/t7403-submodule-sync.sh | 1 - t/t7406-submodule-update.sh | 1 - t/t7407-submodule-foreach.sh | 1 - t/t7408-submodule-reference.sh | 1 - t/t7409-submodule-detached-work-tree.sh | 1 - t/t7411-submodule-config.sh | 1 - t/t7412-submodule-absorbgitdirs.sh | 1 - t/t7413-submodule-is-active.sh | 1 - t/t7414-submodule-mistakes.sh | 1 - t/t7416-submodule-dash-url.sh | 1 - t/t7417-submodule-path-url.sh | 1 - t/t7418-submodule-sparse-gitmodules.sh | 1 - t/t7419-submodule-set-branch.sh | 1 - t/t7420-submodule-set-url.sh | 1 - t/t7421-submodule-summary-add.sh | 1 - t/t7422-submodule-output.sh | 1 - t/t7423-submodule-symlinks.sh | 1 - t/t7424-submodule-mixed-ref-formats.sh | 1 - t/t7450-bad-git-dotfiles.sh | 1 - t/t7500-commit-template-squash-signoff.sh | 1 - t/t7501-commit-basic-functionality.sh | 1 - t/t7502-commit-porcelain.sh | 1 - ...3-pre-commit-and-pre-merge-commit-hooks.sh | 1 - t/t7504-commit-msg-hook.sh | 1 - t/t7505-prepare-commit-msg-hook.sh | 1 - t/t7506-status-submodule.sh | 1 - t/t7507-commit-verbose.sh | 1 - t/t7508-status.sh | 1 - t/t7509-commit-authorship.sh | 1 - t/t7510-signed-commit.sh | 1 - t/t7511-status-index.sh | 1 - t/t7512-status-help.sh | 1 - t/t7513-interpret-trailers.sh | 1 - t/t7514-commit-patch.sh | 1 - t/t7515-status-symlinks.sh | 1 - t/t7516-commit-races.sh | 1 - t/t7517-per-repo-email.sh | 1 - t/t7518-ident-corner-cases.sh | 1 - t/t7519-status-fsmonitor.sh | 1 - t/t7520-ignored-hook-warning.sh | 1 - t/t7521-ignored-mode.sh | 1 - t/t7524-commit-summary.sh | 1 - t/t7525-status-rename.sh | 1 - t/t7526-commit-pathspec-file.sh | 1 - t/t7528-signed-commit-ssh.sh | 1 - t/t7600-merge.sh | 1 - t/t7601-merge-pull-config.sh | 1 - t/t7602-merge-octopus-many.sh | 1 - t/t7603-merge-reduce-heads.sh | 1 - t/t7604-merge-custom-message.sh | 1 - t/t7605-merge-resolve.sh | 1 - t/t7606-merge-custom.sh | 1 - t/t7607-merge-state.sh | 1 - t/t7608-merge-messages.sh | 1 - t/t7609-mergetool--lib.sh | 1 - t/t7610-mergetool.sh | 1 - t/t7611-merge-abort.sh | 1 - t/t7612-merge-verify-signatures.sh | 1 - t/t7614-merge-signoff.sh | 1 - t/t7615-diff-algo-with-mergy-operations.sh | 1 - t/t7700-repack.sh | 1 - t/t7701-repack-unpack-unreachable.sh | 1 - t/t7702-repack-cyclic-alternate.sh | 1 - t/t7703-repack-geometric.sh | 1 - t/t7704-repack-cruft.sh | 1 - t/t7800-difftool.sh | 1 - t/t7810-grep.sh | 1 - t/t7811-grep-open.sh | 1 - t/t7812-grep-icase-non-ascii.sh | 1 - t/t7813-grep-icase-iso.sh | 1 - t/t7814-grep-recurse-submodules.sh | 1 - t/t7815-grep-binary.sh | 1 - t/t7816-grep-binary-pattern.sh | 1 - t/t7817-grep-sparse-checkout.sh | 1 - t/t7900-maintenance.sh | 1 - t/t8001-annotate.sh | 1 - t/t8002-blame.sh | 1 - t/t8003-blame-corner-cases.sh | 1 - t/t8004-blame-with-conflicts.sh | 1 - t/t8005-blame-i18n.sh | 1 + t/t8006-blame-textconv.sh | 1 - t/t8007-cat-file-textconv.sh | 1 - t/t8008-blame-formats.sh | 1 - t/t8009-blame-vs-topicbranches.sh | 1 - t/t8010-cat-file-filters.sh | 1 - t/t8011-blame-split-file.sh | 1 - t/t8012-blame-colors.sh | 1 - t/t8013-blame-ignore-revs.sh | 1 - t/t8014-blame-ignore-fuzzy.sh | 1 - t/t9001-send-email.sh | 1 - t/t9002-column.sh | 1 - t/t9003-help-autocorrect.sh | 1 - t/t9200-git-cvsexportcommit.sh | 1 - t/t9210-scalar.sh | 1 - t/t9211-scalar-clone.sh | 1 - t/t9300-fast-import.sh | 1 - t/t9301-fast-import-notes.sh | 1 - t/t9302-fast-import-unpack-limit.sh | 1 - t/t9303-fast-import-compression.sh | 1 - t/t9304-fast-import-marks.sh | 1 - t/t9350-fast-export.sh | 1 - t/t9351-fast-export-anonymize.sh | 1 - t/t9400-git-cvsserver-server.sh | 1 - t/t9401-git-cvsserver-crlf.sh | 1 - t/t9402-git-cvsserver-refs.sh | 1 - t/t9500-gitweb-standalone-no-errors.sh | 1 - t/t9501-gitweb-standalone-http-status.sh | 1 - t/t9502-gitweb-standalone-parse-output.sh | 1 - t/t9600-cvsimport.sh | 1 - t/t9601-cvsimport-vendor-branch.sh | 1 - t/t9602-cvsimport-branches-tags.sh | 1 - t/t9603-cvsimport-patchsets.sh | 1 - t/t9604-cvsimport-timestamps.sh | 1 - t/t9700-perl-git.sh | 1 - t/t9800-git-p4-basic.sh | 1 - t/t9801-git-p4-branch.sh | 1 - t/t9802-git-p4-filetype.sh | 1 - t/t9803-git-p4-shell-metachars.sh | 1 - t/t9804-git-p4-label.sh | 1 - t/t9805-git-p4-skip-submit-edit.sh | 1 - t/t9806-git-p4-options.sh | 1 - t/t9808-git-p4-chdir.sh | 1 - t/t9809-git-p4-client-view.sh | 1 - t/t9810-git-p4-rcs.sh | 1 - t/t9811-git-p4-label-import.sh | 1 - t/t9812-git-p4-wildcards.sh | 1 - t/t9813-git-p4-preserve-users.sh | 1 - t/t9814-git-p4-rename.sh | 1 - t/t9815-git-p4-submit-fail.sh | 1 - t/t9816-git-p4-locked.sh | 1 - t/t9817-git-p4-exclude.sh | 1 - t/t9818-git-p4-block.sh | 1 - t/t9819-git-p4-case-folding.sh | 1 - t/t9820-git-p4-editor-handling.sh | 1 - t/t9821-git-p4-path-variations.sh | 1 - t/t9822-git-p4-path-encoding.sh | 1 - t/t9823-git-p4-mock-lfs.sh | 1 - t/t9825-git-p4-handle-utf16-without-bom.sh | 1 - t/t9826-git-p4-keep-empty-commits.sh | 1 - t/t9827-git-p4-change-filetype.sh | 1 - t/t9828-git-p4-map-user.sh | 1 - t/t9829-git-p4-jobs.sh | 1 - t/t9830-git-p4-symlink-dir.sh | 1 - t/t9831-git-p4-triggers.sh | 1 - t/t9832-unshelve.sh | 1 - t/t9833-errors.sh | 1 - t/t9834-git-p4-file-dir-bug.sh | 1 - t/t9835-git-p4-metadata-encoding-python2.sh | 1 - t/t9836-git-p4-metadata-encoding-python3.sh | 1 - t/t9850-shell.sh | 1 - t/t9901-git-web--browse.sh | 1 - t/t9902-completion.sh | 1 - t/t9903-bash-prompt.sh | 1 - t/test-lib.sh | 72 +--------- t/unit-tests/strvec.c | 65 +++++++++ usage.c | 15 --- 950 files changed, 376 insertions(+), 1253 deletions(-) diff --git a/promisor-remote.c b/promisor-remote.c index 06507b2ee1..0a4f7f1188 100644 --- a/promisor-remote.c +++ b/promisor-remote.c @@ -424,12 +424,12 @@ static void filter_promisor_remote(struct repository *repo, const char *info) { struct strbuf **remotes; - char *accept_str; + const char *accept_str; enum accept_promisor accept = ACCEPT_NONE; struct strvec names = STRVEC_INIT; struct strvec urls = STRVEC_INIT; - if (!git_config_get_string("promisor.acceptfromserver", &accept_str)) { + if (!git_config_get_string_tmp("promisor.acceptfromserver", &accept_str)) { if (!accept_str || !*accept_str || !strcasecmp("None", accept_str)) accept = ACCEPT_NONE; else if (!strcasecmp("KnownUrl", accept_str)) @@ -486,7 +486,6 @@ static void filter_promisor_remote(struct repository *repo, free(decoded_url); } - free(accept_str); strvec_clear(&names); strvec_clear(&urls); strbuf_list_free(remotes); diff --git a/t/helper/test-path-walk.c b/t/helper/test-path-walk.c index 06b103d876..fa3bfe46b5 100644 --- a/t/helper/test-path-walk.c +++ b/t/helper/test-path-walk.c @@ -85,7 +85,6 @@ int cmd__path_walk(int argc, const char **argv) OPT_END(), }; - initialize_repository(the_repository); setup_git_directory(); revs.repo = the_repository; @@ -110,5 +109,6 @@ int cmd__path_walk(int argc, const char **argv) "tags:%" PRIuMAX "\n", data.commit_nr, data.tree_nr, data.blob_nr, data.tag_nr); + release_revisions(&revs); return res; }