[PATCH v3 0/8] teach branch-specific options for format-patch
- From
Denton Liu <liu.denton@gmail.com>
- Date
- May 22, 2019, 02:44 UTC
- Message-ID
- <cover.1558492582.git.liu.denton@gmail.com>
- In-Reply-To
- <cover.1558052674.git.liu.denton@gmail.com>
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 <liu.denton@gmail.com>
@@ -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 <liu.denton@gmail.com>
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 <to@example.com>" &&
-+ git config format.my7.cc "Cc Me <cc@example.com>" &&
- 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