From 9ee84006e78a59631bf889bdd7631e73da480614 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Wed, 8 Sep 2021 21:05:33 -0400 Subject: Add repeat and all options to git-comment --- bin/git-comment.pl | 52 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 17 deletions(-) (limited to 'bin') diff --git a/bin/git-comment.pl b/bin/git-comment.pl index 17b9da64..42ff9143 100644 --- a/bin/git-comment.pl +++ b/bin/git-comment.pl @@ -10,36 +10,46 @@ use Git; my $repo = Git->repository(); +my $all = 0; my $commentStart = $repo->config('comment.start') // "/*"; my $commentLead = $repo->config('comment.lead') // " *"; my $commentEnd = $repo->config('comment.end') // " */"; -my $threshold = $repo->config('comment.groupThreshold') // 1; +my $minGroup = $repo->config('comment.minGroup') // 2; +my $minRepeat = $repo->config('comment.minRepeat') // 20; +my $noRepeat = $repo->config_bool('comment.noRepeat'); GetOptions( + 'all' => \$all, 'comment-start=s' => \$commentStart, 'comment-lead=s' => \$commentLead, 'comment-end:s' => \$commentEnd, - 'group-threshold=i' => \$threshold, + 'min-group=i' => \$minGroup, + 'min-repeat=i' => \$minRepeat, + 'no-repeat' => \$noRepeat, ) or die; sub printComment { my ($indent, $abbrev, $summary, @body) = @_; - print "$indent$commentStart $abbrev $summary\n"; - print "$indent$commentLead\n"; - foreach (@body) { - print "$indent$commentLead"; - print " $_" if $_; - print "\n"; + print "$indent$commentStart $abbrev $summary"; + if (@body) { + print "\n$indent$commentLead\n"; + foreach (@body) { + print "$indent$commentLead"; + print " $_" if $_; + print "\n"; + } + print "$indent$commentEnd\n" if $commentEnd; + } else { + print "$commentEnd\n"; } - print "$indent$commentEnd\n" if $commentEnd; } my ($pipe, $ctx) = $repo->command_output_pipe('blame', '--porcelain', @ARGV); -my ($commit, $group, $printed, %abbrev, %summary, %body); +my ($commit, $nr, $group, $printed, %abbrev, %summary, %body, %nrs); while (<$pipe>) { chomp; - if (/^([[:xdigit:]]+) \d+ \d+ (\d+)/) { - ($commit, $group, $printed) = ($1, $2, 0); + if (/^([[:xdigit:]]+) \d+ (\d+) (\d+)/) { + ($commit, $nr, $group, $printed) = ($1, $2, $3, 0); next if $abbrev{$commit}; my @body = $repo->command( 'show', '--no-patch', '--pretty=format:%h%n%b', $commit @@ -50,12 +60,20 @@ while (<$pipe>) { $summary{$commit} = $1; } elsif (/^\t(\s*)(.*)/) { my ($indent, $line) = ($1, $2); - if (@{$body{$commit}} && $group > $threshold && !$printed) { - printComment( - $indent, $abbrev{$commit}, $summary{$commit}, - @{$body{$commit}} - ); + unless ($printed) { $printed = 1; + if ( + $group >= $minGroup && + !($noRepeat && $nrs{$commit}) && + !($nrs{$commit} && $nr < $nrs{$commit} + $minRepeat) && + ($all || @{$body{$commit}}) + ) { + $nrs{$commit} = $nr; + printComment( + $indent, $abbrev{$commit}, $summary{$commit}, + @{$body{$commit}} + ); + } } print "$indent$line\n"; } -- cgit 1.4.1 ='content'>
Commit message (Collapse)Author
2025-04-18Add camera template foldersJune McEnroe
2025-04-13Add A Half-Built GardenJune McEnroe
Good one.
2025-04-13Also hide lens for trips if it hasn't changedJune McEnroe
2025-04-12Don't list lens in trips if fixedJune McEnroe
2025-04-12Allow setting exposures when loading filmJune McEnroe
2025-04-08Those were supposed to be en-dashes...June McEnroe
2025-04-08Generate pages per rollJune McEnroe
2025-04-08Add metadata from many rolls of filmJune McEnroe
2025-03-25Add emoji for lens, replace all f/'sJune McEnroe
2024-12-29Add photos from December 28June McEnroe
2024-12-29Fancify the manual lens textJune McEnroe
2024-12-28Update film preset list with what I expect to keep shootingJune McEnroe
2024-12-28Add the past few months of rolls of filmJune McEnroe
2024-11-13Add Tea with the Black DragonJune McEnroe
I found this in a box on the side of the road being thrown own. It's decent pulp but nothing special. Not even as racist as I expected it to be. Also as one might guess, the author using their initials is a woman, so I only broke one of my rules when it comes to book selection.
2024-11-05Add a bunch of photosJune McEnroe
2024-10-12Publish "film review"June McEnroe
2024-10-12Add photos from October 6June McEnroe
2024-10-12Add photos from October 5June McEnroe
2024-10-09Add photos from October 1June McEnroe
Ok the first 3 are from September 29 but I didn't want to spoil the black and white roll.
2024-10-07Add photos from September 29June McEnroe
2024-10-07Add photos from September 28June McEnroe
2024-10-07Add photos from September 22June McEnroe
2024-09-25Add photos from September 15June McEnroe
2024-09-24Add photos from September 14June McEnroe
2024-09-24Add photos from September 12June McEnroe
2024-09-24Add photos from September 7June McEnroe
2024-09-24Allow not having descriptionsJune McEnroe
I'm sorry, I can't keep writing descriptions. It makes posting photos take too long, I often don't know the words for what I'm looking at, and a good description is an entirely different work of art than the photo I took, and I'm just a photographer. It's visual art.
2024-09-23Automatically select the last used lens for a bodyJune McEnroe
2024-09-19Add photos from September 5June McEnroe
Had to prefix the folder number onto these file names manually because they must have come out of a different scanner or something.
2024-09-15Add some more film stocks to the listJune McEnroe
2024-09-13Add photos from September 2June McEnroe
2024-09-13Add Fomapan 200 to films listJune McEnroe
2024-09-10Add August 29 picnic photosJune McEnroe
2024-09-08Apply some bold to trips renderingJune McEnroe
This seems easier to visually scan. The only other thing I'd like is a nicer date rendering but JavaScript is useless for that.
2024-09-08Render trips hopefully more efficientlyJune McEnroe
2024-09-08Allow removing bodies and lensesJune McEnroe
2024-09-08Limit body width so it looks less silly on desktopJune McEnroe
2024-09-07Handle no film being loadedJune McEnroe
2024-09-07Fancy up the text a littleJune McEnroe