From: Jonathan Nieder <jrnieder@gmail.com>
To: git@vger.kernel.org
Cc: Jakub Narebski <jnareb@gmail.com>, Jeff King <peff@peff.net>,
Thomas Rast <trast@student.ethz.ch>,
Jens Lehmann <Jens.Lehmann@web.de>
Subject: [PATCH 6/9] t7508 (status): modernize style
Date: Sat, 24 Jul 2010 19:59:42 -0500 [thread overview]
Message-ID: <20100725005942.GF18420@burratino> (raw)
In-Reply-To: <20100725005443.GA18370@burratino>
Some cleanups to make this test script easier to read and use,
such as:
- put setup code in test_expect_success scripts to make the
test script easier to scan through;
- avoid a pipe to test_decode_color that forgets the exit status of
"git status", by redirecting to a temporary file (named "actual")
for that function to consume instead;
- remove precomputed object IDs;
- reset configuration after each test, so there is less state
for a reader to keep in mind.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
t/t7508-status.sh | 1373 ++++++++++++++++++++++++++++-------------------------
1 files changed, 734 insertions(+), 639 deletions(-)
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index a72fe3a..882e5d7 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -8,23 +8,23 @@ test_description='git status'
. ./test-lib.sh
test_expect_success 'setup' '
- : >tracked &&
- : >modified &&
+ >tracked &&
+ >modified &&
mkdir dir1 &&
- : >dir1/tracked &&
- : >dir1/modified &&
+ >dir1/tracked &&
+ >dir1/modified &&
mkdir dir2 &&
- : >dir1/tracked &&
- : >dir1/modified &&
+ >dir1/tracked &&
+ >dir1/modified &&
git add . &&
git status >output &&
test_tick &&
git commit -m initial &&
- : >untracked &&
- : >dir1/untracked &&
- : >dir2/untracked &&
+ >untracked &&
+ >dir1/untracked &&
+ >dir2/untracked &&
echo 1 >dir1/modified &&
echo 2 >dir2/modified &&
echo 3 >dir2/added &&
@@ -32,564 +32,604 @@ test_expect_success 'setup' '
'
test_expect_success 'status (1)' '
-
grep "use \"git rm --cached <file>\.\.\.\" to unstage" output
-
'
-cat >expect <<\EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: dir2/added
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-EOF
-
test_expect_success 'status (2)' '
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: dir2/added
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ EOF
git status >output &&
test_cmp expect output
-
'
-cat >expect <<\EOF
-# On branch master
-# Changes to be committed:
-# new file: dir2/added
-#
-# Changed but not updated:
-# modified: dir1/modified
-#
-# Untracked files:
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-EOF
-
-git config advice.statusHints false
-
test_expect_success 'status (advice.statusHints false)' '
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changes to be committed:
+ # new file: dir2/added
+ #
+ # Changed but not updated:
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ EOF
+ git config advice.statusHints false &&
+ test_when_finished "git config --unset advice.statusHints" &&
git status >output &&
test_cmp expect output
-
'
-git config --unset advice.statusHints
-
-cat >expect <<\EOF
- M dir1/modified
-A dir2/added
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
-
test_expect_success 'status -s' '
+ cat >expect <<-\EOF &&
+ M dir1/modified
+ A dir2/added
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
git status -s >output &&
test_cmp expect output
-
'
-cat >expect <<\EOF
-## master
- M dir1/modified
-A dir2/added
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
-
test_expect_success 'status -s -b' '
+ cat >expect <<-\EOF &&
+ ## master
+ M dir1/modified
+ A dir2/added
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
git status -s -b >output &&
test_cmp expect output
-
'
-cat >expect <<EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: dir2/added
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files not listed (use -u option to show untracked files)
-EOF
-test_expect_success 'status -uno' '
+test_expect_success 'set up dir3 for untracked files tests' '
mkdir dir3 &&
- : >dir3/untracked1 &&
- : >dir3/untracked2 &&
+ >dir3/untracked1 &&
+ >dir3/untracked2 &&
+
+ cat >expect <<-\EOF
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: dir2/added
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files not listed (use -u option to show untracked files)
+ EOF
+'
+
+test_expect_success 'status -uno' '
git status -uno >output &&
test_cmp expect output
'
test_expect_success 'status (status.showUntrackedFiles no)' '
- git config status.showuntrackedfiles no
+ git config status.showuntrackedfiles no &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
git status >output &&
test_cmp expect output
'
-cat >expect <<EOF
-# On branch master
-# Changes to be committed:
-# new file: dir2/added
-#
-# Changed but not updated:
-# modified: dir1/modified
-#
-# Untracked files not listed
-EOF
-git config advice.statusHints false
test_expect_success 'status -uno (advice.statusHints false)' '
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changes to be committed:
+ # new file: dir2/added
+ #
+ # Changed but not updated:
+ # modified: dir1/modified
+ #
+ # Untracked files not listed
+ EOF
+ git config status.showuntrackedfiles no &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
+ git config advice.statusHints false &&
+ test_when_finished "git config --unset advice.statusHints" &&
git status -uno >output &&
test_cmp expect output
'
-git config --unset advice.statusHints
-cat >expect << EOF
- M dir1/modified
-A dir2/added
-EOF
+test_expect_success 'setup: status -s -uno expected output' '
+ cat >expect <<-\EOF
+ M dir1/modified
+ A dir2/added
+ EOF
+'
+
test_expect_success 'status -s -uno' '
- git config --unset status.showuntrackedfiles
+ test_might_fail git config --unset status.showuntrackedfiles &&
git status -s -uno >output &&
test_cmp expect output
'
test_expect_success 'status -s (status.showUntrackedFiles no)' '
- git config status.showuntrackedfiles no
+ git config status.showuntrackedfiles no &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
git status -s >output &&
test_cmp expect output
'
-cat >expect <<EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: dir2/added
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# dir3/
-# expect
-# output
-# untracked
-EOF
+test_expect_success 'setup: status -unormal expected output' '
+ cat >expect <<-\EOF
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: dir2/added
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # dir3/
+ # expect
+ # output
+ # untracked
+ EOF
+'
+
test_expect_success 'status -unormal' '
+ git config status.showuntrackedfiles no &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
git status -unormal >output &&
test_cmp expect output
'
test_expect_success 'status (status.showUntrackedFiles normal)' '
- git config status.showuntrackedfiles normal
+ git config status.showuntrackedfiles normal &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
git status >output &&
test_cmp expect output
'
-cat >expect <<EOF
- M dir1/modified
-A dir2/added
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? dir3/
-?? expect
-?? output
-?? untracked
-EOF
+test_expect_success 'setup: status -s -unormal expected output' '
+ cat >expect <<-\EOF
+ M dir1/modified
+ A dir2/added
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? dir3/
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
+'
+
test_expect_success 'status -s -unormal' '
- git config --unset status.showuntrackedfiles
+ test_might_fail git config --unset status.showuntrackedfiles &&
git status -s -unormal >output &&
test_cmp expect output
'
test_expect_success 'status -s (status.showUntrackedFiles normal)' '
- git config status.showuntrackedfiles normal
+ git config status.showuntrackedfiles normal &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
git status -s >output &&
test_cmp expect output
'
-cat >expect <<EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: dir2/added
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# dir3/untracked1
-# dir3/untracked2
-# expect
-# output
-# untracked
-EOF
+test_expect_success 'setup: status -uall expected output' '
+ cat >expect <<-\EOF
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: dir2/added
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # dir3/untracked1
+ # dir3/untracked2
+ # expect
+ # output
+ # untracked
+ EOF
+'
+
test_expect_success 'status -uall' '
git status -uall >output &&
test_cmp expect output
'
test_expect_success 'status (status.showUntrackedFiles all)' '
- git config status.showuntrackedfiles all
+ git config status.showuntrackedfiles all &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
git status >output &&
rm -rf dir3 &&
- git config --unset status.showuntrackedfiles &&
test_cmp expect output
'
-cat >expect <<EOF
- M dir1/modified
-A dir2/added
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
+test_expect_success 'setup: status -s -uall expected output' '
+ cat >expect <<-\EOF
+ M dir1/modified
+ A dir2/added
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
+'
+
test_expect_success 'status -s -uall' '
- git config --unset status.showuntrackedfiles
+ test_might_fail git config --unset status.showuntrackedfiles &&
git status -s -uall >output &&
test_cmp expect output
'
+
test_expect_success 'status -s (status.showUntrackedFiles all)' '
- git config status.showuntrackedfiles all
+ git config status.showuntrackedfiles all &&
+ test_when_finished "git config --unset status.showuntrackedfiles" &&
git status -s >output &&
- rm -rf dir3 &&
- git config --unset status.showuntrackedfiles &&
test_cmp expect output
'
-cat >expect <<\EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: ../dir2/added
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# untracked
-# ../dir2/modified
-# ../dir2/untracked
-# ../expect
-# ../output
-# ../untracked
-EOF
+test_expect_success 'setup: done with dir3' '
+ rm -rf dir3
+'
test_expect_success 'status with relative paths' '
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: ../dir2/added
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # untracked
+ # ../dir2/modified
+ # ../dir2/untracked
+ # ../expect
+ # ../output
+ # ../untracked
+ EOF
- (cd dir1 && git status) >output &&
+ (
+ cd dir1 &&
+ git status >../output
+ ) &&
test_cmp expect output
-
'
-cat >expect <<\EOF
- M modified
-A ../dir2/added
-?? untracked
-?? ../dir2/modified
-?? ../dir2/untracked
-?? ../expect
-?? ../output
-?? ../untracked
-EOF
test_expect_success 'status -s with relative paths' '
+ cat >expect <<-\EOF &&
+ M modified
+ A ../dir2/added
+ ?? untracked
+ ?? ../dir2/modified
+ ?? ../dir2/untracked
+ ?? ../expect
+ ?? ../output
+ ?? ../untracked
+ EOF
- (cd dir1 && git status -s) >output &&
+ (
+ cd dir1 &&
+ git status -s >../output
+ ) &&
test_cmp expect output
-
'
-cat >expect <<\EOF
- M dir1/modified
-A dir2/added
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
-
test_expect_success 'status --porcelain ignores relative paths setting' '
+ cat >expect <<-\EOF &&
+ M dir1/modified
+ A dir2/added
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
- (cd dir1 && git status --porcelain) >output &&
+ (
+ cd dir1 &&
+ git status --porcelain >../output
+ ) &&
test_cmp expect output
-
'
-test_expect_success 'setup unique colors' '
-
+test_expect_success 'setup: unique colors' '
git config status.color.untracked blue
-
'
-cat >expect <<\EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# <GREEN>new file: dir2/added<RESET>
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# <RED>modified: dir1/modified<RESET>
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# <BLUE>dir1/untracked<RESET>
-# <BLUE>dir2/modified<RESET>
-# <BLUE>dir2/untracked<RESET>
-# <BLUE>expect<RESET>
-# <BLUE>output<RESET>
-# <BLUE>untracked<RESET>
-EOF
+test_expect_success 'setup: expect colorful output' '
+ cat >expect <<-\EOF
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # <GREEN>new file: dir2/added<RESET>
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # <RED>modified: dir1/modified<RESET>
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # <BLUE>actual<RESET>
+ # <BLUE>dir1/untracked<RESET>
+ # <BLUE>dir2/modified<RESET>
+ # <BLUE>dir2/untracked<RESET>
+ # <BLUE>expect<RESET>
+ # <BLUE>output<RESET>
+ # <BLUE>untracked<RESET>
+ EOF
+'
test_expect_success 'status with color.ui' '
-
git config color.ui always &&
- git status | test_decode_color >output &&
+ test_when_finished "git config --unset color.ui" &&
+ git status >actual &&
+ test_decode_color <actual >output &&
test_cmp expect output
-
'
test_expect_success 'status with color.status' '
-
- git config --unset color.ui &&
+ test_might_fail git config --unset color.ui &&
git config color.status always &&
- git status | test_decode_color >output &&
+ test_when_finished "git config --unset color.status" &&
+ git status >actual &&
+ test_decode_color <actual >output &&
test_cmp expect output
-
'
-cat >expect <<\EOF
- <RED>M<RESET> dir1/modified
-<GREEN>A<RESET> dir2/added
-<BLUE>??<RESET> dir1/untracked
-<BLUE>??<RESET> dir2/modified
-<BLUE>??<RESET> dir2/untracked
-<BLUE>??<RESET> expect
-<BLUE>??<RESET> output
-<BLUE>??<RESET> untracked
-EOF
+test_expect_success 'setup: expected colorful short output' '
+ cat >expect <<-\EOF
+ <RED>M<RESET> dir1/modified
+ <GREEN>A<RESET> dir2/added
+ <BLUE>??<RESET> actual
+ <BLUE>??<RESET> dir1/untracked
+ <BLUE>??<RESET> dir2/modified
+ <BLUE>??<RESET> dir2/untracked
+ <BLUE>??<RESET> expect
+ <BLUE>??<RESET> output
+ <BLUE>??<RESET> untracked
+ EOF
+'
test_expect_success 'status -s with color.ui' '
-
- git config --unset color.status &&
+ test_might_fail git config --unset color.status &&
git config color.ui always &&
- git status -s | test_decode_color >output &&
+ test_when_finished "git config --unset color.ui" &&
+ git status -s >actual &&
+ test_decode_color <actual >output &&
test_cmp expect output
-
'
test_expect_success 'status -s with color.status' '
-
- git config --unset color.ui &&
+ test_might_fail git config --unset color.ui &&
git config color.status always &&
- git status -s | test_decode_color >output &&
+ test_when_finished "git config --unset color.status" &&
+ git status -s >actual &&
+ test_decode_color <actual >output &&
test_cmp expect output
-
'
-cat >expect <<\EOF
-## <GREEN>master<RESET>
- <RED>M<RESET> dir1/modified
-<GREEN>A<RESET> dir2/added
-<BLUE>??<RESET> dir1/untracked
-<BLUE>??<RESET> dir2/modified
-<BLUE>??<RESET> dir2/untracked
-<BLUE>??<RESET> expect
-<BLUE>??<RESET> output
-<BLUE>??<RESET> untracked
-EOF
-
test_expect_success 'status -s -b with color.status' '
+ cat >expect <<-\EOF &&
+ ## <GREEN>master<RESET>
+ <RED>M<RESET> dir1/modified
+ <GREEN>A<RESET> dir2/added
+ <BLUE>??<RESET> actual
+ <BLUE>??<RESET> dir1/untracked
+ <BLUE>??<RESET> dir2/modified
+ <BLUE>??<RESET> dir2/untracked
+ <BLUE>??<RESET> expect
+ <BLUE>??<RESET> output
+ <BLUE>??<RESET> untracked
+ EOF
- git status -s -b | test_decode_color >output &&
+ git config color.status always &&
+ test_when_finished "git config --unset color.status" &&
+ git status -s -b >actual &&
+ test_decode_color <actual >output &&
test_cmp expect output
-
'
-cat >expect <<\EOF
- M dir1/modified
-A dir2/added
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
+test_expect_success 'setup: expect uncolorful status --porcelain output' '
+ cat >expect <<-\EOF
+ M dir1/modified
+ A dir2/added
+ ?? actual
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
+'
test_expect_success 'status --porcelain ignores color.ui' '
-
- git config --unset color.status &&
+ test_might_fail git config --unset color.status &&
git config color.ui always &&
- git status --porcelain | test_decode_color >output &&
+ test_when_finished "git config --unset color.ui" &&
+ git status --porcelain >actual &&
+ test_decode_color <actual >output &&
test_cmp expect output
-
'
test_expect_success 'status --porcelain ignores color.status' '
-
- git config --unset color.ui &&
+ test_might_fail git config --unset color.ui &&
git config color.status always &&
- git status --porcelain | test_decode_color >output &&
+ test_when_finished "git config --unset color.status" &&
+ git status --porcelain >actual &&
+ test_decode_color <actual >output &&
test_cmp expect output
-
'
-# recover unconditionally from color tests
-git config --unset color.status
-git config --unset color.ui
+test_expect_success 'setup: recover unconditionally from color tests' '
+ test_might_fail git config --unset color.status &&
+ test_might_fail git config --unset color.ui
+'
test_expect_success 'status --porcelain ignores -b' '
-
git status --porcelain -b >output &&
test_cmp expect output
-
'
-cat >expect <<\EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: dir2/added
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-EOF
-
-
test_expect_success 'status without relative paths' '
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: dir2/added
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ EOF
- git config status.relativePaths false
- (cd dir1 && git status) >output &&
+ git config status.relativePaths false &&
+ test_when_finished "git config --unset status.relativePaths" &&
+ (
+ cd dir1 &&
+ git status >../output
+ ) &&
test_cmp expect output
-
'
-cat >expect <<\EOF
- M dir1/modified
-A dir2/added
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
-
test_expect_success 'status -s without relative paths' '
+ cat >expect <<-\EOF &&
+ M dir1/modified
+ A dir2/added
+ ?? actual
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
- (cd dir1 && git status -s) >output &&
+ git config status.relativePaths false &&
+ test_when_finished "git config --unset status.relativePaths" &&
+ (
+ cd dir1 &&
+ git status -s >../output
+ ) &&
test_cmp expect output
-
'
-cat <<EOF >expect
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/
-# expect
-# output
-# untracked
-EOF
test_expect_success 'dry-run of partial commit excluding new file in index' '
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/
+ # expect
+ # output
+ # untracked
+ EOF
+
git commit --dry-run dir1/modified >output &&
test_cmp expect output
'
-cat >expect <<EOF
-:100644 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 M dir1/modified
-EOF
test_expect_success 'status refreshes the index' '
+ EMPTY_BLOB=$(git hash-object -t blob --stdin </dev/null) &&
+ ZEROES=0000000000000000000000000000000000000000 &&
+ echo ":100644 100644 $EMPTY_BLOB $ZEROES M dir1/modified" >expect &&
+
touch dir2/added &&
git status &&
git diff-files >output &&
@@ -597,39 +637,42 @@ test_expect_success 'status refreshes the index' '
'
test_expect_success 'setup status submodule summary' '
- test_create_repo sm && (
+ test_create_repo sm &&
+ (
cd sm &&
>foo &&
git add foo &&
git commit -m "Add foo"
) &&
- git add sm
+ git add sm &&
+
+ cat >expect <<-\EOF
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: dir2/added
+ # new file: sm
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ EOF
'
-cat >expect <<EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: dir2/added
-# new file: sm
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-EOF
test_expect_success 'status submodule summary is disabled by default' '
git status >output &&
test_cmp expect output
@@ -641,17 +684,21 @@ test_expect_success 'status --untracked-files=all does not show submodule' '
test_cmp expect output
'
-cat >expect <<EOF
- M dir1/modified
-A dir2/added
-A sm
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
+test_expect_success 'setup status -s submodule summary' '
+ cat >expect <<-\EOF
+ M dir1/modified
+ A dir2/added
+ A sm
+ ?? actual
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
+'
+
test_expect_success 'status -s submodule summary is disabled by default' '
git status -s >output &&
test_cmp expect output
@@ -663,275 +710,323 @@ test_expect_success 'status -s --untracked-files=all does not show submodule' '
test_cmp expect output
'
-head=$(cd sm && git rev-parse --short=7 --verify HEAD)
+test_expect_success 'setup: save head' '
+ head=$(
+ cd sm &&
+ git rev-parse --short=7 --verify HEAD
+ )
+'
-cat >expect <<EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD <file>..." to unstage)
-#
-# new file: dir2/added
-# new file: sm
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Submodule changes to be committed:
-#
-# * sm 0000000...$head (1):
-# > Add foo
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-EOF
test_expect_success 'status submodule summary' '
+ cat >expect <<-EOF &&
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD <file>..." to unstage)
+ #
+ # new file: dir2/added
+ # new file: sm
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Submodule changes to be committed:
+ #
+ # * sm 0000000...$head (1):
+ # > Add foo
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ EOF
+
git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
git status >output &&
test_cmp expect output
'
-cat >expect <<EOF
- M dir1/modified
-A dir2/added
-A sm
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
test_expect_success 'status -s submodule summary' '
+ cat >expect <<-\EOF &&
+ M dir1/modified
+ A dir2/added
+ A sm
+ ?? actual
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
+
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
git status -s >output &&
test_cmp expect output
'
-cat >expect <<EOF
-# On branch master
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-no changes added to commit (use "git add" and/or "git commit -a")
-EOF
test_expect_success 'status submodule summary (clean submodule)' '
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ no changes added to commit (use "git add" and/or "git commit -a")
+ EOF
+
git commit -m "commit submodule" &&
git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
test_must_fail git commit --dry-run >output &&
test_cmp expect output &&
git status >output &&
test_cmp expect output
'
-cat >expect <<EOF
- M dir1/modified
-?? dir1/untracked
-?? dir2/modified
-?? dir2/untracked
-?? expect
-?? output
-?? untracked
-EOF
test_expect_success 'status -s submodule summary (clean submodule)' '
+ cat >expect <<-\EOF &&
+ M dir1/modified
+ ?? actual
+ ?? dir1/untracked
+ ?? dir2/modified
+ ?? dir2/untracked
+ ?? expect
+ ?? output
+ ?? untracked
+ EOF
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
git status -s >output &&
test_cmp expect output
'
-cat >expect <<EOF
-# On branch master
-# Changes to be committed:
-# (use "git reset HEAD^1 <file>..." to unstage)
-#
-# new file: dir2/added
-# new file: sm
-#
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Submodule changes to be committed:
-#
-# * sm 0000000...$head (1):
-# > Add foo
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-EOF
test_expect_success 'commit --dry-run submodule summary (--amend)' '
+ cat >expect <<-EOF &&
+ # On branch master
+ # Changes to be committed:
+ # (use "git reset HEAD^1 <file>..." to unstage)
+ #
+ # new file: dir2/added
+ # new file: sm
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Submodule changes to be committed:
+ #
+ # * sm 0000000...$head (1):
+ # > Add foo
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ EOF
+
git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
git commit --dry-run --amend >output &&
test_cmp expect output
'
test_expect_success POSIXPERM 'status succeeds in a read-only repository' '
- (
- chmod a-w .git &&
- # make dir1/tracked stat-dirty
- >dir1/tracked1 && mv -f dir1/tracked1 dir1/tracked &&
- git status -s >output &&
- ! grep dir1/tracked output &&
- # make sure "status" succeeded without writing index out
- git diff-files | grep dir1/tracked
- )
- status=$?
- chmod 775 .git
- (exit $status)
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
+
+ chmod a-w .git &&
+ test_when_finished "chmod 775 .git" &&
+
+ # make dir1/tracked stat-dirty
+ >dir1/tracked1 &&
+ mv -f dir1/tracked1 dir1/tracked &&
+
+ git status -s >output &&
+ ! grep dir1/tracked output &&
+
+ # make sure "status" succeeded without writing index out
+ git diff-files >output &&
+ grep dir1/tracked output
'
-cat > expect << EOF
-# On branch master
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-no changes added to commit (use "git add" and/or "git commit -a")
-EOF
+test_expect_success 'setup: status --ignore-submodules' '
+ cat >expect <<-\EOF
+ # On branch master
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ no changes added to commit (use "git add" and/or "git commit -a")
+ EOF
+'
test_expect_success '--ignore-submodules=untracked suppresses submodules with untracked content' '
- echo modified > sm/untracked &&
- git status --ignore-submodules=untracked > output &&
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
+ echo modified >sm/untracked &&
+ git status --ignore-submodules=untracked >output &&
test_cmp expect output
'
test_expect_success '--ignore-submodules=dirty suppresses submodules with untracked content' '
- git status --ignore-submodules=dirty > output &&
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
+ git status --ignore-submodules=dirty >output &&
test_cmp expect output
'
test_expect_success '--ignore-submodules=dirty suppresses submodules with modified content' '
- echo modified > sm/foo &&
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
+ echo modified >sm/foo &&
git status --ignore-submodules=dirty > output &&
test_cmp expect output
'
-cat > expect << EOF
-# On branch master
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-# (commit or discard the untracked or modified content in submodules)
-#
-# modified: dir1/modified
-# modified: sm (modified content)
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-no changes added to commit (use "git add" and/or "git commit -a")
-EOF
-
test_expect_success "--ignore-submodules=untracked doesn't suppress submodules with modified content" '
- git status --ignore-submodules=untracked > output &&
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ # (commit or discard the untracked or modified content in submodules)
+ #
+ # modified: dir1/modified
+ # modified: sm (modified content)
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ no changes added to commit (use "git add" and/or "git commit -a")
+ EOF
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
+ git status --ignore-submodules=untracked >output &&
test_cmp expect output
'
-head2=$(cd sm && git commit -q -m "2nd commit" foo && git rev-parse --short=7 --verify HEAD)
-
-cat > expect << EOF
-# On branch master
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-# modified: sm (new commits)
-#
-# Submodules changed but not updated:
-#
-# * sm $head...$head2 (1):
-# > 2nd commit
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-no changes added to commit (use "git add" and/or "git commit -a")
-EOF
+test_expect_success 'setup' '
+ head2=$(
+ cd sm &&
+ git commit -q -m "2nd commit" foo &&
+ git rev-parse --short=7 --verify HEAD
+ ) &&
+ cat >expect <<-EOF
+ # On branch master
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ # modified: sm (new commits)
+ #
+ # Submodules changed but not updated:
+ #
+ # * sm $head...$head2 (1):
+ # > 2nd commit
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ no changes added to commit (use "git add" and/or "git commit -a")
+ EOF
+'
test_expect_success "--ignore-submodules=untracked doesn't suppress submodule summary" '
- git status --ignore-submodules=untracked > output &&
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
+ git status --ignore-submodules=untracked >output &&
test_cmp expect output
'
test_expect_success "--ignore-submodules=dirty doesn't suppress submodule summary" '
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
git status --ignore-submodules=dirty > output &&
test_cmp expect output
'
-cat > expect << EOF
-# On branch master
-# Changed but not updated:
-# (use "git add <file>..." to update what will be committed)
-# (use "git checkout -- <file>..." to discard changes in working directory)
-#
-# modified: dir1/modified
-#
-# Untracked files:
-# (use "git add <file>..." to include in what will be committed)
-#
-# dir1/untracked
-# dir2/modified
-# dir2/untracked
-# expect
-# output
-# untracked
-no changes added to commit (use "git add" and/or "git commit -a")
-EOF
-
test_expect_success "--ignore-submodules=all suppresses submodule summary" '
- git status --ignore-submodules=all > output &&
+ cat >expect <<-\EOF &&
+ # On branch master
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: dir1/modified
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # actual
+ # dir1/untracked
+ # dir2/modified
+ # dir2/untracked
+ # expect
+ # output
+ # untracked
+ no changes added to commit (use "git add" and/or "git commit -a")
+ EOF
+ git config status.submodulesummary 10 &&
+ test_when_finished "git config --unset status.submodulesummary" &&
+ git status --ignore-submodules=all >output &&
test_cmp expect output
'
--
1.7.2.9.ge3789.dirty
next prev parent reply other threads:[~2010-07-25 1:00 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-25 0:54 [RFC/PATCH 0/9] commit: more focused advice in the no-changes-staged case Jonathan Nieder
2010-07-25 0:56 ` [PATCH 1/9] wt-status: split wt_status_print into digestible pieces Jonathan Nieder
2010-07-25 0:57 ` [PATCH 2/9] wt-status: split off a function for printing submodule summary Jonathan Nieder
2010-07-25 0:58 ` [PATCH 3/9] commit: split off a function to fetch the default log message Jonathan Nieder
2010-07-25 0:58 ` [PATCH 4/9] commit: split commit -s handling into its own function Jonathan Nieder
2010-07-25 0:59 ` [PATCH 5/9] commit: split off the piece that writes status Jonathan Nieder
2010-07-25 0:59 ` Jonathan Nieder [this message]
2010-07-25 8:38 ` [PATCH 6/9] t7508 (status): modernize style Ævar Arnfjörð Bjarmason
2010-07-25 1:00 ` [PATCH 7/9] commit: give empty-commit avoidance code its own function Jonathan Nieder
2010-07-25 1:01 ` [PATCH 8/9] commit --dry-run: give advice on empty amend Jonathan Nieder
2010-07-25 1:02 ` [PATCH 9/9] commit: suppress status summary when no changes staged Jonathan Nieder
2010-08-11 7:11 ` Thomas Rast
2010-08-11 7:30 ` Jonathan Nieder
2010-08-11 7:49 ` [PATCH v2] t6040 (branch tracking): check “status” instead of “commit” Jonathan Nieder
2010-08-12 0:45 ` Ævar Arnfjörð Bjarmason
2010-08-11 12:15 ` [PATCH 9/9] commit: suppress status summary when no changes staged Ævar Arnfjörð Bjarmason
2010-08-11 23:57 ` Jonathan Nieder
2010-08-12 0:05 ` Ævar Arnfjörð Bjarmason
2010-08-12 0:10 ` Jonathan Nieder
2010-07-25 8:54 ` [RFC/PATCH 0/9] commit: more focused advice in the no-changes-staged case Ævar Arnfjörð Bjarmason
2010-07-25 9:22 ` Thomas Rast
2010-07-29 23:51 ` Making error messages stand out (Re: [RFC/PATCH 0/9] commit: more focused advice in the no-changes-staged case) Jonathan Nieder
2010-07-30 18:44 ` Sverre Rabbelier
2010-08-11 8:31 ` [WIP/PATCH 0/4] Re: Making error messages stand out Jonathan Nieder
2010-08-11 8:36 ` [PATCH 1/4] Eliminate “Finished cherry-pick/revert” message Jonathan Nieder
2010-08-11 8:36 ` [PATCH 2/4] Introduce advise() to print hints Jonathan Nieder
2010-08-11 8:37 ` [PATCH 3/4] cherry-pick/revert: Use error() for failure message Jonathan Nieder
2010-08-11 8:37 ` [PATCH 4/4] cherry-pick/revert: Use advise() for hints Jonathan Nieder
2010-08-11 9:21 ` [WIP/PATCH 0/4] Re: Making error messages stand out Nguyen Thai Ngoc Duy
2010-08-11 9:39 ` Matthieu Moy
2010-08-11 9:58 ` Nguyen Thai Ngoc Duy
2010-08-11 17:34 ` Sverre Rabbelier
2010-08-18 14:36 ` [PATCH] tests: fix syntax error in "Use advise() for hints" test Ævar Arnfjörð Bjarmason
2010-08-19 4:30 ` Jonathan Nieder
2010-08-19 12:22 ` Ævar Arnfjörð Bjarmason
2010-08-20 10:13 ` Raja R Harinath
2010-08-20 14:22 ` Ævar Arnfjörð Bjarmason
2010-08-20 17:51 ` Junio C Hamano
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100725005942.GF18420@burratino \
--to=jrnieder@gmail.com \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
--cc=peff@peff.net \
--cc=trast@student.ethz.ch \
/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.
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 NNTP newsgroup(s).