Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8473b7f

Browse files
committed
Add a --non-master-only option to git_changelog.
This has the inverse effect of --master-only. It's needed to help findcases where a commit should not be described in major release notesbecause it was back-patched into older branches, though not at the sametime as the HEAD commit.
1 parent6376a16 commit8473b7f

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

‎src/tools/git_changelog

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@
3737
# git show $(git merge-base REL9_5_STABLE master)
3838
# where the branch to mention is the previously forked-off branch. This
3939
# shows the last commit before that branch was made.
40+
#
41+
# Note that --master-only is an imperfect filter, since it will not detect
42+
# cases where a HEAD patch was back-patched awhile later or with a slightly
43+
# different commit message. To find such cases, it's a good idea to look
44+
# through the output of
45+
# git_changelog --non-master-only --oldest-first --since='start-date'
46+
# and then remove anything from the --master-only output that would be
47+
# duplicative.
4048

4149

4250
use strict;
@@ -62,6 +70,7 @@ my $brief = 0;
6270
my$details_after = 0;
6371
my$post_date = 0;
6472
my$master_only = 0;
73+
my$non_master_only = 0;
6574
my$oldest_first = 0;
6675
my$since;
6776
my@output_buffer;
@@ -71,6 +80,7 @@ Getopt::Long::GetOptions(
7180
'brief'=> \$brief,
7281
'details-after'=> \$details_after,
7382
'master-only'=> \$master_only,
83+
'non-master-only'=> \$non_master_only,
7484
'post-date'=> \$post_date,
7585
'oldest-first'=> \$oldest_first,
7686
'since=s'=> \$since) || usage();
@@ -236,10 +246,21 @@ while (1)
236246
my$winner =
237247
$all_commits_by_branch{$best_branch}->[$position{$best_branch} ];
238248

239-
# check for master-only
240-
if (!$master_only
241-
|| ($winner->{'commits'}[0]->{'branch'}eq'master'
242-
&& @{$winner->{'commits'} } == 1))
249+
my$print_it = 1;
250+
if ($master_only)
251+
{
252+
$print_it = (@{$winner->{'commits'} } == 1)
253+
&& ($winner->{'commits'}[0]->{'branch'}eq'master');
254+
}
255+
elsif ($non_master_only)
256+
{
257+
foreachmy$c (@{$winner->{'commits'} })
258+
{
259+
$print_it = 0if ($c->{'branch'}eq'master');
260+
}
261+
}
262+
263+
if ($print_it)
243264
{
244265
output_details($winner)if (!$details_after);
245266
output_str("%s",$winner->{'message'} ."\n");
@@ -375,13 +396,14 @@ sub output_details
375396
subusage
376397
{
377398
printSTDERR<<EOM;
378-
Usage: git_changelog [--brief/-b] [--details-after/-d] [--master-only/-m] [--oldest-first/-o] [--post-date/-p] [--since=SINCE]
399+
Usage: git_changelog [--brief/-b] [--details-after/-d] [--master-only/-m] [--non-master-only/-n] [--oldest-first/-o] [--post-date/-p] [--since=SINCE]
379400
--brief Shorten commit descriptions, omitting branch identification
380401
--details-after Show branch and author info after the commit description
381-
--master-only Show commits made exclusively to the master branch
402+
--master-only Show only commits made just in the master branch
403+
--non-master-only Show only commits made just in back branches
382404
--oldest-first Show oldest commits first
383405
--post-date Show branches made after a commit occurred
384-
--sincePrint only commits dated since SINCE
406+
--sinceShow only commits dated since SINCE
385407
EOM
386408
exit 1;
387409
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp