Skip to content

Commit a567fdc

Browse files
Benabikgitster
authored andcommitted
format-patch: autonumber by default
format-patch is most commonly used for multiple patches at once when sending a patchset, in which case we want to number the patches; on the other hand, single patches are not usually expected to be numbered. In other words, the typical behavior expected from format-patch is the one obtained by enabling autonumber, so we set it to be the default. Users that want to disable numbering for a particular patchset can do so with the existing -N command-line switch. Users that want to change the default behavior can use the format.numbering config key. Signed-off-by: Brian Gernhardt <[email protected]> Test-updates-by: Jeff King <[email protected]> Signed-off-by: Shawn O. Pearce <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 5c283eb commit a567fdc

15 files changed

+298
-32
lines changed

Documentation/config.txt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -640,10 +640,11 @@ fetch.unpackLimit::
640640
`transfer.unpackLimit` is used instead.
641641

642642
format.numbered::
643-
A boolean which can enable sequence numbers in patch subjects.
644-
Setting this option to "auto" will enable it only if there is
645-
more than one patch. See --numbered option in
646-
linkgit:git-format-patch[1].
643+
A boolean which can enable or disable sequence numbers in patch
644+
subjects. It defaults to "auto" which enables it only if there
645+
is more than one patch. It can be enabled or disabled for all
646+
messages by setting it to "true" or "false". See --numbered
647+
option in linkgit:git-format-patch[1].
647648

648649
format.headers::
649650
Additional email headers to include in a patch to be submitted

Documentation/git-format-patch.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,10 @@ output, unless the --stdout option is specified.
5858
If -o is specified, output files are created in <dir>. Otherwise
5959
they are created in the current working directory.
6060

61-
If -n is specified, instead of "[PATCH] Subject", the first line
62-
is formatted as "[PATCH n/m] Subject".
61+
By default, the subject of a single patch is "[PATCH] First Line" and
62+
the subject when multiple patches are output is "[PATCH n/m] First
63+
Line". To force 1/1 to be added for a single patch, use -n. To omit
64+
patch numbers from the subject, use -N
6365

6466
If given --thread, 'git-format-patch' will generate In-Reply-To and
6567
References headers to make the second and subsequent patch mails appear
@@ -81,7 +83,7 @@ include::diff-options.txt[]
8183

8284
-n::
8385
--numbered::
84-
Name output in '[PATCH n/m]' format.
86+
Name output in '[PATCH n/m]' format, even with a single patch.
8587

8688
-N::
8789
--no-numbered::

builtin-log.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ static int istitlechar(char c)
426426

427427
static const char *fmt_patch_suffix = ".patch";
428428
static int numbered = 0;
429-
static int auto_number = 0;
429+
static int auto_number = 1;
430430

431431
static char **extra_hdr;
432432
static int extra_hdr_nr;
@@ -485,6 +485,7 @@ static int git_format_config(const char *var, const char *value, void *cb)
485485
return 0;
486486
}
487487
numbered = git_config_bool(var, value);
488+
auto_number = auto_number && numbered;
488489
return 0;
489490
}
490491

t/t4013-diff-various.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,12 +236,15 @@ show --patch-with-stat --summary side
236236
format-patch --stdout initial..side
237237
format-patch --stdout initial..master^
238238
format-patch --stdout initial..master
239+
format-patch --stdout --no-numbered initial..master
240+
format-patch --stdout --numbered initial..master
239241
format-patch --attach --stdout initial..side
240242
format-patch --attach --stdout initial..master^
241243
format-patch --attach --stdout initial..master
242244
format-patch --inline --stdout initial..side
243245
format-patch --inline --stdout initial..master^
244246
format-patch --inline --stdout initial..master
247+
format-patch --inline --stdout initial..master
245248
format-patch --inline --stdout --subject-prefix=TESTCASE initial..master
246249
config format.subjectprefix DIFFERENT_PREFIX
247250
format-patch --inline --stdout initial..master^^

t/t4013/diff.format-patch_--attach_--stdout_initial..master

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ $ git format-patch --attach --stdout initial..master
22
From 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 Mon Sep 17 00:00:00 2001
33
From: A U Thor <[email protected]>
44
Date: Mon, 26 Jun 2006 00:01:00 +0000
5-
Subject: [PATCH] Second
5+
Subject: [PATCH 1/3] Second
66
MIME-Version: 1.0
77
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
88

@@ -63,7 +63,7 @@ index 01e79c3..0000000
6363
From 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Mon Sep 17 00:00:00 2001
6464
From: A U Thor <[email protected]>
6565
Date: Mon, 26 Jun 2006 00:02:00 +0000
66-
Subject: [PATCH] Third
66+
Subject: [PATCH 2/3] Third
6767
MIME-Version: 1.0
6868
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
6969

@@ -111,7 +111,7 @@ index 0000000..b1e6722
111111
From c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Mon Sep 17 00:00:00 2001
112112
From: A U Thor <[email protected]>
113113
Date: Mon, 26 Jun 2006 00:03:00 +0000
114-
Subject: [PATCH] Side
114+
Subject: [PATCH 3/3] Side
115115
MIME-Version: 1.0
116116
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
117117

t/t4013/diff.format-patch_--attach_--stdout_initial..master^

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ $ git format-patch --attach --stdout initial..master^
22
From 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 Mon Sep 17 00:00:00 2001
33
From: A U Thor <[email protected]>
44
Date: Mon, 26 Jun 2006 00:01:00 +0000
5-
Subject: [PATCH] Second
5+
Subject: [PATCH 1/2] Second
66
MIME-Version: 1.0
77
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
88

@@ -63,7 +63,7 @@ index 01e79c3..0000000
6363
From 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Mon Sep 17 00:00:00 2001
6464
From: A U Thor <[email protected]>
6565
Date: Mon, 26 Jun 2006 00:02:00 +0000
66-
Subject: [PATCH] Third
66+
Subject: [PATCH 2/2] Third
6767
MIME-Version: 1.0
6868
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
6969

t/t4013/diff.format-patch_--inline_--stdout_--subject-prefix=TESTCASE_initial..master

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ $ git format-patch --inline --stdout --subject-prefix=TESTCASE initial..master
22
From 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 Mon Sep 17 00:00:00 2001
33
From: A U Thor <[email protected]>
44
Date: Mon, 26 Jun 2006 00:01:00 +0000
5-
Subject: [TESTCASE] Second
5+
Subject: [TESTCASE 1/3] Second
66
MIME-Version: 1.0
77
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
88

@@ -63,7 +63,7 @@ index 01e79c3..0000000
6363
From 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Mon Sep 17 00:00:00 2001
6464
From: A U Thor <[email protected]>
6565
Date: Mon, 26 Jun 2006 00:02:00 +0000
66-
Subject: [TESTCASE] Third
66+
Subject: [TESTCASE 2/3] Third
6767
MIME-Version: 1.0
6868
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
6969

@@ -111,7 +111,7 @@ index 0000000..b1e6722
111111
From c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Mon Sep 17 00:00:00 2001
112112
From: A U Thor <[email protected]>
113113
Date: Mon, 26 Jun 2006 00:03:00 +0000
114-
Subject: [TESTCASE] Side
114+
Subject: [TESTCASE 3/3] Side
115115
MIME-Version: 1.0
116116
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
117117

t/t4013/diff.format-patch_--inline_--stdout_initial..master

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ $ git format-patch --inline --stdout initial..master
22
From 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 Mon Sep 17 00:00:00 2001
33
From: A U Thor <[email protected]>
44
Date: Mon, 26 Jun 2006 00:01:00 +0000
5-
Subject: [PATCH] Second
5+
Subject: [PATCH 1/3] Second
66
MIME-Version: 1.0
77
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
88

@@ -63,7 +63,7 @@ index 01e79c3..0000000
6363
From 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Mon Sep 17 00:00:00 2001
6464
From: A U Thor <[email protected]>
6565
Date: Mon, 26 Jun 2006 00:02:00 +0000
66-
Subject: [PATCH] Third
66+
Subject: [PATCH 2/3] Third
6767
MIME-Version: 1.0
6868
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
6969

@@ -111,7 +111,7 @@ index 0000000..b1e6722
111111
From c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Mon Sep 17 00:00:00 2001
112112
From: A U Thor <[email protected]>
113113
Date: Mon, 26 Jun 2006 00:03:00 +0000
114-
Subject: [PATCH] Side
114+
Subject: [PATCH 3/3] Side
115115
MIME-Version: 1.0
116116
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
117117

t/t4013/diff.format-patch_--inline_--stdout_initial..master^

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ $ git format-patch --inline --stdout initial..master^
22
From 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 Mon Sep 17 00:00:00 2001
33
From: A U Thor <[email protected]>
44
Date: Mon, 26 Jun 2006 00:01:00 +0000
5-
Subject: [PATCH] Second
5+
Subject: [PATCH 1/2] Second
66
MIME-Version: 1.0
77
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
88

@@ -63,7 +63,7 @@ index 01e79c3..0000000
6363
From 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Mon Sep 17 00:00:00 2001
6464
From: A U Thor <[email protected]>
6565
Date: Mon, 26 Jun 2006 00:02:00 +0000
66-
Subject: [PATCH] Third
66+
Subject: [PATCH 2/2] Third
6767
MIME-Version: 1.0
6868
Content-Type: multipart/mixed; boundary="------------g-i-t--v-e-r-s-i-o-n"
6969

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
$ git format-patch --stdout --no-numbered initial..master
2+
From 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 Mon Sep 17 00:00:00 2001
3+
From: A U Thor <[email protected]>
4+
Date: Mon, 26 Jun 2006 00:01:00 +0000
5+
Subject: [PATCH] Second
6+
7+
This is the second commit.
8+
---
9+
dir/sub | 2 ++
10+
file0 | 3 +++
11+
file2 | 3 ---
12+
3 files changed, 5 insertions(+), 3 deletions(-)
13+
delete mode 100644 file2
14+
15+
diff --git a/dir/sub b/dir/sub
16+
index 35d242b..8422d40 100644
17+
--- a/dir/sub
18+
+++ b/dir/sub
19+
@@ -1,2 +1,4 @@
20+
A
21+
B
22+
+C
23+
+D
24+
diff --git a/file0 b/file0
25+
index 01e79c3..b414108 100644
26+
--- a/file0
27+
+++ b/file0
28+
@@ -1,3 +1,6 @@
29+
1
30+
2
31+
3
32+
+4
33+
+5
34+
+6
35+
diff --git a/file2 b/file2
36+
deleted file mode 100644
37+
index 01e79c3..0000000
38+
--- a/file2
39+
+++ /dev/null
40+
@@ -1,3 +0,0 @@
41+
-1
42+
-2
43+
-3
44+
--
45+
g-i-t--v-e-r-s-i-o-n
46+
47+
48+
From 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 Mon Sep 17 00:00:00 2001
49+
From: A U Thor <[email protected]>
50+
Date: Mon, 26 Jun 2006 00:02:00 +0000
51+
Subject: [PATCH] Third
52+
53+
---
54+
dir/sub | 2 ++
55+
file1 | 3 +++
56+
2 files changed, 5 insertions(+), 0 deletions(-)
57+
create mode 100644 file1
58+
59+
diff --git a/dir/sub b/dir/sub
60+
index 8422d40..cead32e 100644
61+
--- a/dir/sub
62+
+++ b/dir/sub
63+
@@ -2,3 +2,5 @@ A
64+
B
65+
C
66+
D
67+
+E
68+
+F
69+
diff --git a/file1 b/file1
70+
new file mode 100644
71+
index 0000000..b1e6722
72+
--- /dev/null
73+
+++ b/file1
74+
@@ -0,0 +1,3 @@
75+
+A
76+
+B
77+
+C
78+
--
79+
g-i-t--v-e-r-s-i-o-n
80+
81+
82+
From c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a Mon Sep 17 00:00:00 2001
83+
From: A U Thor <[email protected]>
84+
Date: Mon, 26 Jun 2006 00:03:00 +0000
85+
Subject: [PATCH] Side
86+
87+
---
88+
dir/sub | 2 ++
89+
file0 | 3 +++
90+
file3 | 4 ++++
91+
3 files changed, 9 insertions(+), 0 deletions(-)
92+
create mode 100644 file3
93+
94+
diff --git a/dir/sub b/dir/sub
95+
index 35d242b..7289e35 100644
96+
--- a/dir/sub
97+
+++ b/dir/sub
98+
@@ -1,2 +1,4 @@
99+
A
100+
B
101+
+1
102+
+2
103+
diff --git a/file0 b/file0
104+
index 01e79c3..f4615da 100644
105+
--- a/file0
106+
+++ b/file0
107+
@@ -1,3 +1,6 @@
108+
1
109+
2
110+
3
111+
+A
112+
+B
113+
+C
114+
diff --git a/file3 b/file3
115+
new file mode 100644
116+
index 0000000..7289e35
117+
--- /dev/null
118+
+++ b/file3
119+
@@ -0,0 +1,4 @@
120+
+A
121+
+B
122+
+1
123+
+2
124+
--
125+
g-i-t--v-e-r-s-i-o-n
126+
127+
$

0 commit comments

Comments
 (0)