From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
"John Szakmeister" <john@szakmeister.net>,
"Dennis Kaarsemaker" <dennis@kaarsemaker.net>,
"Christian Couder" <christian.couder@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 2/3] tests: mark those tests where "git fsck" fails at the end
Date: Wed, 31 Oct 2018 12:42:07 +0000 [thread overview]
Message-ID: <20181031124208.29451-3-avarab@gmail.com> (raw)
In-Reply-To: <20181030232337.GC32038@sigill.intra.peff.net>
Mark the tests where "git fsck" fails at the end with extra test code
to check the fsck output. There fsck.{err,out} has been created for
us.
A later change will add the support for GIT_TEST_FSCK_TESTS. They're
being added first to ensure the test suite will never fail with
GIT_TEST_FSCK=true during bisect.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
t/t1006-cat-file.sh | 5 +++++
t/t1305-config-include.sh | 4 ++++
t/t1404-update-ref-errors.sh | 4 ++++
t/t1410-reflog.sh | 4 ++++
t/t1515-rev-parse-outside-repo.sh | 4 ++++
t/t3008-ls-files-lazy-init-name-hash.sh | 4 ++++
t/t3103-ls-tree-misc.sh | 6 ++++++
t/t3430-rebase-merges.sh | 6 ++++++
t/t4046-diff-unmerged.sh | 4 ++++
t/t4058-diff-duplicates.sh | 5 +++++
t/t4212-log-corrupt.sh | 6 ++++++
t/t5000-tar-tree.sh | 5 +++++
t/t5300-pack-object.sh | 5 +++++
t/t5303-pack-corruption-resilience.sh | 8 ++++++++
t/t5307-pack-missing-commit.sh | 7 +++++++
t/t5312-prune-corruption.sh | 4 ++++
t/t5504-fetch-receive-strict.sh | 4 ++++
t/t5601-clone.sh | 8 ++++++++
t/t6007-rev-list-cherry-pick-file.sh | 4 ++++
t/t6011-rev-list-with-bad-commit.sh | 7 +++++++
t/t6030-bisect-porcelain.sh | 6 ++++++
t/t7007-show.sh | 6 ++++++
t/t7106-reset-unborn-branch.sh | 4 ++++
t/t7415-submodule-names.sh | 4 ++++
t/t7416-submodule-dash-url.sh | 4 ++++
t/t7417-submodule-path-url.sh | 4 ++++
t/t7509-commit-authorship.sh | 4 ++++
t/t8003-blame-corner-cases.sh | 4 ++++
t/t9130-git-svn-authors-file.sh | 7 +++++++
29 files changed, 147 insertions(+)
diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh
index 43c4be1e5e..12b69e6fbe 100755
--- a/t/t1006-cat-file.sh
+++ b/t/t1006-cat-file.sh
@@ -588,4 +588,9 @@ test_expect_success 'cat-file --unordered works' '
test_cmp expect actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "unable to unpack header of" fsck.err &&
+ test_i18ngrep "object corrupt or missing" fsck.err
+'
+
test_done
diff --git a/t/t1305-config-include.sh b/t/t1305-config-include.sh
index 635918505d..890d307d4e 100755
--- a/t/t1305-config-include.sh
+++ b/t/t1305-config-include.sh
@@ -313,4 +313,8 @@ test_expect_success 'include cycles are detected' '
test_i18ngrep "exceeded maximum include depth" stderr
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "exceeded maximum include depth" fsck.err
+'
+
test_done
diff --git a/t/t1404-update-ref-errors.sh b/t/t1404-update-ref-errors.sh
index 51a4f4c0ac..6095b2d4b9 100755
--- a/t/t1404-update-ref-errors.sh
+++ b/t/t1404-update-ref-errors.sh
@@ -618,4 +618,8 @@ test_expect_success 'delete fails cleanly if packed-refs file is locked' '
test_cmp unchanged actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "invalid sha1 pointer" fsck.err
+'
+
test_done
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index 388b0611d8..43b8e0c9c5 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -368,4 +368,8 @@ test_expect_success 'continue walking past root commits' '
)
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "invalid reflog entry" fsck.err
+'
+
test_done
diff --git a/t/t1515-rev-parse-outside-repo.sh b/t/t1515-rev-parse-outside-repo.sh
index 3ec2971ee5..1d8fc3ad70 100755
--- a/t/t1515-rev-parse-outside-repo.sh
+++ b/t/t1515-rev-parse-outside-repo.sh
@@ -42,4 +42,8 @@ test_expect_success 'rev-parse --resolve-git-dir' '
test_cmp expect actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "not a git repository" fsck.err
+'
+
test_done
diff --git a/t/t3008-ls-files-lazy-init-name-hash.sh b/t/t3008-ls-files-lazy-init-name-hash.sh
index 64f047332b..7fb2e5c177 100755
--- a/t/t3008-ls-files-lazy-init-name-hash.sh
+++ b/t/t3008-ls-files-lazy-init-name-hash.sh
@@ -24,4 +24,8 @@ test_expect_success 'no buffer overflow in lazy_init_name_hash' '
test-tool lazy-init-name-hash -m
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "notice: No default references" fsck.err
+'
+
test_done
diff --git a/t/t3103-ls-tree-misc.sh b/t/t3103-ls-tree-misc.sh
index 14520913af..b7d8ae2e81 100755
--- a/t/t3103-ls-tree-misc.sh
+++ b/t/t3103-ls-tree-misc.sh
@@ -22,4 +22,10 @@ test_expect_success 'ls-tree fails with non-zero exit code on broken tree' '
test_must_fail git ls-tree -r HEAD
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "invalid sha1 pointer in cache-tree" fsck.err &&
+ test_i18ngrep "broken link from.*tree" fsck.out &&
+ test_i18ngrep "missing tree" fsck.out
+'
+
test_done
diff --git a/t/t3430-rebase-merges.sh b/t/t3430-rebase-merges.sh
index aa7bfc88ec..efac3a792b 100755
--- a/t/t3430-rebase-merges.sh
+++ b/t/t3430-rebase-merges.sh
@@ -396,4 +396,10 @@ test_expect_success 'with --autosquash and --exec' '
grep "G: +G" actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "broken link from.*commit" fsck.out &&
+ test_i18ngrep "to.*tree" fsck.out &&
+ test_i18ngrep "missing tree" fsck.out
+'
+
test_done
diff --git a/t/t4046-diff-unmerged.sh b/t/t4046-diff-unmerged.sh
index ff7cfd884a..d868bc44a9 100755
--- a/t/t4046-diff-unmerged.sh
+++ b/t/t4046-diff-unmerged.sh
@@ -84,4 +84,8 @@ test_expect_success 'diff-files -3' '
test_cmp diff-files-3.expect diff-files-3.actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "notice: No default references" fsck.err
+'
+
test_done
diff --git a/t/t4058-diff-duplicates.sh b/t/t4058-diff-duplicates.sh
index c24ee175ef..9c79410dc0 100755
--- a/t/t4058-diff-duplicates.sh
+++ b/t/t4058-diff-duplicates.sh
@@ -76,4 +76,9 @@ test_expect_success 'diff-tree with renames' '
test_cmp expect actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "zeroPaddedFilemode" fsck.err &&
+ test_i18ngrep "duplicateEntries" fsck.err
+'
+
test_done
diff --git a/t/t4212-log-corrupt.sh b/t/t4212-log-corrupt.sh
index 03b952c90d..5f36c58a61 100755
--- a/t/t4212-log-corrupt.sh
+++ b/t/t4212-log-corrupt.sh
@@ -85,4 +85,10 @@ test_expect_success 'absurdly far-in-future date' '
git log -1 --format=%ad $commit
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "badDate" fsck.err &&
+ test_i18ngrep "badDateOverflow" fsck.err &&
+ test_i18ngrep "missingSpaceBeforeDate" fsck.err
+'
+
test_done
diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh
index 2a97b27b0a..88c768f232 100755
--- a/t/t5000-tar-tree.sh
+++ b/t/t5000-tar-tree.sh
@@ -408,4 +408,9 @@ test_expect_success TAR_HUGE,TIME_IS_64BIT,TIME_T_IS_64BIT 'system tar can read
test_cmp expect actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "corrupt loose object" fsck.err &&
+ test_i18ngrep "object corrupt or missing" fsck.err
+'
+
test_done
diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh
index 6c620cd540..b4ef9a447a 100755
--- a/t/t5300-pack-object.sh
+++ b/t/t5300-pack-object.sh
@@ -493,4 +493,9 @@ test_expect_success \
'test_must_fail git -c core.bigfilethreshold=1 index-pack -o bad.idx test-3.pack 2>msg &&
test_i18ngrep "SHA1 COLLISION FOUND" msg'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "sha1 mismatch for" fsck.err &&
+ test_i18ngrep "object corrupt or missing" fsck.err
+'
+
test_done
diff --git a/t/t5303-pack-corruption-resilience.sh b/t/t5303-pack-corruption-resilience.sh
index 41e6dc4dcf..79c9b307d0 100755
--- a/t/t5303-pack-corruption-resilience.sh
+++ b/t/t5303-pack-corruption-resilience.sh
@@ -400,4 +400,12 @@ test_expect_success \
'printf "\0\1\1X\0" > tail_garbage_opcode &&
test_must_fail test-tool delta -p /dev/null tail_garbage_opcode /dev/null'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "pack checksum mismatch" fsck.err &&
+ test_i18ngrep "index CRC mismatch.*at offset 12" fsck.err &&
+ test_i18ngrep "cannot unpack.*at offset 12" fsck.err &&
+ test_i18ngrep "failed to read delta base object.*at offset 12" fsck.err &&
+ test_i18ngrep "failed to read delta base object.*at offset 2032" fsck.err
+'
+
test_done
diff --git a/t/t5307-pack-missing-commit.sh b/t/t5307-pack-missing-commit.sh
index dacb440b27..2780f4ceeb 100755
--- a/t/t5307-pack-missing-commit.sh
+++ b/t/t5307-pack-missing-commit.sh
@@ -36,4 +36,11 @@ test_expect_success 'pack-objects notices corruption' '
test_must_fail git pack-objects --revs pack
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "invalid sha1 pointer" fsck.err &&
+ test_i18ngrep "broken link from.*commit" fsck.out &&
+ test_i18ngrep "to.*commit" fsck.out &&
+ test_i18ngrep "missing commit" fsck.out
+'
+
test_done
diff --git a/t/t5312-prune-corruption.sh b/t/t5312-prune-corruption.sh
index da9d59940d..898d8906bc 100755
--- a/t/t5312-prune-corruption.sh
+++ b/t/t5312-prune-corruption.sh
@@ -111,4 +111,8 @@ test_expect_success 'pack-refs does not drop broken refs during deletion' '
test_cmp expect actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "invalid sha1 pointer" fsck.err
+'
+
test_done
diff --git a/t/t5504-fetch-receive-strict.sh b/t/t5504-fetch-receive-strict.sh
index 7bc706873c..945a060992 100755
--- a/t/t5504-fetch-receive-strict.sh
+++ b/t/t5504-fetch-receive-strict.sh
@@ -348,4 +348,8 @@ test_expect_success \
grep "Cannot demote unterminatedheader" act
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "missingEmail" fsck.err
+'
+
test_done
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index f1a49e94f5..35eca5881b 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -726,6 +726,14 @@ test_expect_success 'batch missing blob request does not inadvertently try to fe
git clone --filter=blob:limit=0 "file://$(pwd)/server" client
'
+# We might have "test_done" through lib-httpd.sh. Need to tes
+# GIT_TEST_FSCK_TESTS here.
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "object.*is a tree, not a blob" fsck.err &&
+ test_i18ngrep "object.*is a commit, not a blob" fsck.err &&
+ test_i18ngrep "error in tree.*: broken links" fsck.err
+'
+
. "$TEST_DIRECTORY"/lib-httpd.sh
start_httpd
diff --git a/t/t6007-rev-list-cherry-pick-file.sh b/t/t6007-rev-list-cherry-pick-file.sh
index f0268372d2..a86ba0900b 100755
--- a/t/t6007-rev-list-cherry-pick-file.sh
+++ b/t/t6007-rev-list-cherry-pick-file.sh
@@ -266,4 +266,8 @@ test_expect_success '--cherry-pick avoids looking at full diffs' '
git rev-list --cherry-pick ...shy-diff
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "missing blob" fsck.out
+'
+
test_done
diff --git a/t/t6011-rev-list-with-bad-commit.sh b/t/t6011-rev-list-with-bad-commit.sh
index 545b461e51..30d39ce925 100755
--- a/t/t6011-rev-list-with-bad-commit.sh
+++ b/t/t6011-rev-list-with-bad-commit.sh
@@ -55,5 +55,12 @@ test_expect_success 'first commit is still available' \
git log $first_commit
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "pack checksum mismatch" fsck.err &&
+ test_i18ngrep "index CRC mismatch for object.*at offset 487" fsck.err &&
+ test_i18ngrep "inflate: data stream error.*incorrect data check" fsck.err &&
+ test_i18ngrep "cannot unpack.*at offset 487" fsck.err
+'
+
test_done
diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index f84ff941c3..5da668ed06 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -911,4 +911,10 @@ test_expect_success 'git bisect reset cleans bisection state properly' '
test_path_is_missing "$GIT_DIR/BISECT_START"
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "broken link from.*tree" fsck.out &&
+ test_i18ngrep "to.*tree" fsck.out &&
+ test_i18ngrep "missing tree" fsck.out
+'
+
test_done
diff --git a/t/t7007-show.sh b/t/t7007-show.sh
index 42d3db6246..d25cee8a72 100755
--- a/t/t7007-show.sh
+++ b/t/t7007-show.sh
@@ -128,4 +128,10 @@ test_expect_success 'show --graph is forbidden' '
test_must_fail git show --graph HEAD
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "broken link from.*tag" fsck.out &&
+ test_i18ngrep "to.*blob" fsck.out &&
+ test_i18ngrep "missing blob" fsck.out
+'
+
test_done
diff --git a/t/t7106-reset-unborn-branch.sh b/t/t7106-reset-unborn-branch.sh
index ecb85c3b82..0719261fe7 100755
--- a/t/t7106-reset-unborn-branch.sh
+++ b/t/t7106-reset-unborn-branch.sh
@@ -64,4 +64,8 @@ test_expect_success 'reset --hard' '
test_path_is_missing a
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "missing tree" fsck.out
+'
+
test_done
diff --git a/t/t7415-submodule-names.sh b/t/t7415-submodule-names.sh
index 293e2e1963..3d8fa7831f 100755
--- a/t/t7415-submodule-names.sh
+++ b/t/t7415-submodule-names.sh
@@ -191,4 +191,8 @@ test_expect_success 'fsck detects corrupt .gitmodules' '
)
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "gitmodulesName" fsck.err
+'
+
test_done
diff --git a/t/t7416-submodule-dash-url.sh b/t/t7416-submodule-dash-url.sh
index 1cd2c1c1ea..e6c885784e 100755
--- a/t/t7416-submodule-dash-url.sh
+++ b/t/t7416-submodule-dash-url.sh
@@ -46,4 +46,8 @@ test_expect_success 'fsck rejects unprotected dash' '
grep gitmodulesUrl err
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "gitmodulesUrl" fsck.err
+'
+
test_done
diff --git a/t/t7417-submodule-path-url.sh b/t/t7417-submodule-path-url.sh
index 756af8c4d6..8362442908 100755
--- a/t/t7417-submodule-path-url.sh
+++ b/t/t7417-submodule-path-url.sh
@@ -25,4 +25,8 @@ test_expect_success 'fsck rejects unprotected dash' '
grep gitmodulesPath err
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "gitmodulesPath" fsck.err
+'
+
test_done
diff --git a/t/t7509-commit-authorship.sh b/t/t7509-commit-authorship.sh
index 500ab2fe72..cdcbfed61a 100755
--- a/t/t7509-commit-authorship.sh
+++ b/t/t7509-commit-authorship.sh
@@ -174,4 +174,8 @@ test_expect_success '--reset-author with CHERRY_PICK_HEAD' '
test_cmp expect actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "invalid reflog entry" fsck.err
+'
+
test_done
diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh
index c92a47b6d5..3a8affc3e7 100755
--- a/t/t8003-blame-corner-cases.sh
+++ b/t/t8003-blame-corner-cases.sh
@@ -275,4 +275,8 @@ test_expect_success 'blame file with CRLF core.autocrlf=true' '
grep "A U Thor" actual
'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "missingNameBeforeEmail" fsck.err
+'
+
test_done
diff --git a/t/t9130-git-svn-authors-file.sh b/t/t9130-git-svn-authors-file.sh
index cb764bcadc..0c0c42c72c 100755
--- a/t/t9130-git-svn-authors-file.sh
+++ b/t/t9130-git-svn-authors-file.sh
@@ -128,4 +128,11 @@ test_expect_success 'authors-file imported user without email' '
test_debug 'GIT_DIR=gitconfig.clone/.git git log'
+GIT_TEST_FSCK_TESTS='
+ test_i18ngrep "object.*is a tree, not a blob" fsck.err &&
+ test_i18ngrep "object.*is a commit, not a blob" fsck.err &&
+ test_i18ngrep "tree.*: broken links" fsck.err &&
+ test_i18ngrep "missingTaggerEntry" fsck.err
+'
+
test_done
--
2.19.1.899.g0250525e69
next prev parent reply other threads:[~2018-10-31 12:42 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-07 12:50 "git fsck" not detecting garbage at the end of blob object files John Szakmeister
2017-01-07 21:47 ` Dennis Kaarsemaker
2017-01-08 5:26 ` Jeff King
2017-01-13 9:15 ` John Szakmeister
2017-01-13 17:52 ` [PATCH 0/6] loose-object fsck fixes/tightening Jeff King
2017-01-13 17:54 ` [PATCH 1/6] t1450: refactor loose-object removal Jeff King
2017-01-13 17:54 ` [PATCH 2/6] sha1_file: fix error message for alternate objects Jeff King
2017-01-13 17:55 ` [PATCH 3/6] t1450: test fsck of packed objects Jeff King
2017-01-13 17:58 ` [PATCH 4/6] sha1_file: add read_loose_object() function Jeff King
2017-01-13 17:59 ` [PATCH 5/6] fsck: parse loose object paths directly Jeff King
2018-10-30 20:03 ` Infinite loop regression in git-fsck in v2.12.0 Ævar Arnfjörð Bjarmason
2018-10-30 21:35 ` Jeff King
2018-10-30 22:28 ` Junio C Hamano
2018-10-30 22:56 ` Jeff King
2018-10-30 23:12 ` Jeff King
2018-10-30 23:18 ` [PATCH 1/3] t1450: check large blob in trailing-garbage test Jeff King
2018-10-30 23:23 ` [PATCH 2/3] check_stream_sha1(): handle input underflow Jeff King
2018-10-31 4:23 ` Junio C Hamano
2018-10-31 4:30 ` Jeff King
2018-10-31 4:44 ` Junio C Hamano
2018-10-31 5:03 ` Jeff King
2018-10-31 5:13 ` Jeff King
2018-10-31 5:31 ` Junio C Hamano
2018-10-30 23:23 ` [PATCH 3/3] cat-file: handle streaming failures consistently Jeff King
2018-10-31 12:42 ` [PATCH 0/3] Add a GIT_TEST_FSCK test mode Ævar Arnfjörð Bjarmason
2018-10-31 12:42 ` [PATCH 1/3] tests: add a "env-bool" helper to test-tool Ævar Arnfjörð Bjarmason
2018-10-31 12:42 ` Ævar Arnfjörð Bjarmason [this message]
2018-11-01 3:37 ` [PATCH 2/3] tests: mark those tests where "git fsck" fails at the end Junio C Hamano
2018-10-31 12:42 ` [PATCH 3/3] tests: add a special test setup that runs "git fsck" before exiting Ævar Arnfjörð Bjarmason
2018-10-31 13:33 ` [PATCH 3/3] cat-file: handle streaming failures consistently Torsten Bögershausen
2018-10-31 14:23 ` Junio C Hamano
2018-10-31 14:37 ` Jeff King
2018-10-31 17:38 ` Eric Sunshine
2018-10-31 20:29 ` Jeff King
2018-10-30 21:56 ` Infinite loop regression in git-fsck in v2.12.0 Ævar Arnfjörð Bjarmason
2018-10-30 23:08 ` Jeff King
2017-01-13 18:00 ` [PATCH 6/6] fsck: detect trailing garbage in all object types Jeff King
2017-01-19 11:18 ` [PATCH 0/6] loose-object fsck fixes/tightening John Szakmeister
2017-01-13 9:16 ` "git fsck" not detecting garbage at the end of blob object files John Szakmeister
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181031124208.29451-3-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=christian.couder@gmail.com \
--cc=dennis@kaarsemaker.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=john@szakmeister.net \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).