Hi Junio,
I've gotten rid of all the `format.*.coverSubject` stuff and replaced it
with a generic `format.inferCoverSubject` that will read the subject
from the branch description. I've also made `git branch -d` stop
deleting the `format.<branch>.*` variables.
A new addition in this patchset is that format-patch is now taught to
understand the `format.<branch-name>.outputDirectory` configuration.
Changes since v2:
* Replaced `format.<branch-name>.coverSubject` and `--cover-subject`
with `format.inferCoverSubject` and `--infer-cover-subject` which
reads the subject from the branch description
* Do not let `git branch -d` delete `format.<branch-name>.*` configs
* More documentation cleanup
* Taught format-patch to read `format.<branch-name>.outputDirectory` as
well
Changes since v1:
* Used format.<branch-name>.* variables instead of branch.<branch-name>.*
Denton Liu (8):
t4014: clean up style
Doc: add more detail for git-format-patch
format-patch: infer cover letter from branch description
format-patch: move extra_headers logic later
string-list: create string_list_append_all
format-patch: read branch-specific To: and Cc: headers
format-patch: move output_directory logic later
format-patch: read branch-specific output directory
Documentation/config/format.txt | 17 +-
Documentation/git-format-patch.txt | 44 +-
builtin/log.c | 237 ++++++---
string-list.c | 9 +
string-list.h | 7 +
t/t4014-format-patch.sh | 739 +++++++++++++++++------------
6 files changed, 667 insertions(+), 386 deletions(-)
Range-diff against v2:
1: 92d7be10aa = 1: 82c0dc9cc8 t4014: clean up style
2: 930a021b7f ! 2: a8cc599fd2 Doc: add more detail for git-format-patch
@@ -9,7 +9,10 @@
In addition, document the special value of `--base=auto`.
- Finally, while we're at it, surround option arguments with <>.
+ Next, while we're at it, surround option arguments with <>.
+
+ Finally, document the `format.outputDirectory` config and change
+ `format.coverletter` to use camelcase.
Signed-off-by: Denton Liu <[email protected]>
@@ -67,3 +70,25 @@
--root::
Treat the revision argument as a <revision range>, even if it
+@@
+ -------------
+ You can specify extra mail header lines to be added to each message,
+ defaults for the subject prefix and file suffix, number patches when
+-outputting more than one patch, add "To" or "Cc:" headers, configure
+-attachments, and sign off patches with configuration variables.
++outputting more than one patch, add "To:" or "Cc:" headers, configure
++attachments, change the patch output directory, and sign off patches
++with configuration variables.
+
+ ------------
+ [format]
+@@
+ cc = <email>
+ attach [ = mime-boundary-string ]
+ signOff = true
+- coverletter = auto
++ outputDirectory = <directory>
++ coverLetter = auto
+ ------------
+
+
3: 075e2c0721 < -: ---------- format-patch: make cover letter subject
configurable
-: ---------- > 3: e3b8c96b1c format-patch: infer cover letter from branch
description
4: 323179377e ! 4: 52ee126825 format-patch: move extra_headers logic later
@@ -7,10 +7,10 @@
logic later in the function so that this happens. (This patch is best
viewed with `git diff --color-moved`.)
- Note that this logic only depends on the `git_config` and
+ Note that this logic only depends on `git_config` and
`repo_init_revisions` and is depended on by the patch creation logic
- which is directly below it so this move is effectively a no-op as
- no dependencies being reordered.
+ which is directly below it so this move is effectively a no-op as no
+ dependencies being reordered.
Signed-off-by: Denton Liu <[email protected]>
5: 7a8fa4f5f6 = 5: 27c60c715c string-list: create string_list_append_all
6: 9d7338f067 ! 6: f2a1546b2d format-patch: read branch-specific To: and Cc:
headers
@@ -59,29 +59,20 @@
far (from config or command line).
@@
- -------------
- You can specify extra mail header lines to be added to each message,
- defaults for the subject prefix and file suffix, number patches when
--outputting more than one patch, add "To" or "Cc:" headers, configure
-+outputting more than one patch, add "To:" or "Cc:" headers, configure
- attachments, and sign off patches with configuration variables.
-
- ------------
-@@
+ inferCoverSubject = true
------------
- In addition, for a specific branch, you can specify a custom cover
--letter subject.
++In addition, for a specific branch, you can specify a custom cover
+letter subject, and add additional "To:" or "Cc:" headers.
-
- ------------
- [format "branch-name"]
- coverSubject = "subject for branch-name only"
++
++------------
++[format "branch-name"]
+ to = <email>
+ cc = <email>
- ------------
++------------
DISCUSSION
+ ----------
diff --git a/builtin/log.c b/builtin/log.c
--- a/builtin/log.c
@@ -96,7 +87,7 @@
static void add_header(const char *value)
{
@@
- return 0;
+ fprintf(rev->diffopt.file, "\n");
}
+static void add_branch_headers(struct rev_info *rev, const char
*branch_name)
@@ -186,25 +177,6 @@
strbuf_addstr(&buf, extra_hdr.items[i].string);
strbuf_addch(&buf, '\n');
- diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
- --- a/t/t3200-branch.sh
- +++ b/t/t3200-branch.sh
-@@
-
- test_expect_success 'test deleting branch deletes branch config' '
- git config format.my7.coverSubject "cover subject" &&
-+ git config format.my7.to "To Me <[email protected]>" &&
-+ git config format.my7.cc "Cc Me <[email protected]>" &&
- git branch -d my7 &&
- test -z "$(git config branch.my7.remote)" &&
- test -z "$(git config branch.my7.merge)" &&
- test -z "$(git config format.my7.coverSubject)"
-+ test -z "$(git config format.my7.to)" &&
-+ test -z "$(git config format.my7.cc)"
- '
-
- test_expect_success 'test deleting branch without config' '
-
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
-: ---------- > 7: 70e28c5472 format-patch: move output_directory logic later
-: ---------- > 8: b23c3c16f7 format-patch: read branch-specific output
directory
--
2.22.0.rc1.169.g49223abbf8