From: Jakub Narebski <jnareb@gmail.com>
To: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Cc: git@vger.kernel.org,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Johan Herland <johan@herland.net>,
Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 4/4] gitweb: show notes in commit(diff) view
Date: Sat, 6 Feb 2010 14:16:28 +0100 [thread overview]
Message-ID: <201002061416.29481.jnareb@gmail.com> (raw)
In-Reply-To: <1265300338-25021-5-git-send-email-giuseppe.bilotta@gmail.com>
On Thu, 4 Jan 2010, Giuseppe Bilotta wrote:
> The notes are shown side-by-side along the bottom of the commit
> message.
The same question apply as for previous commit.
What happens if screen size is too small to contain both commit message
and notes? Does it do the sensible thing of putting notes _below_
commit message in such situation? I do not know CSS+HTML enogh to
answer this question myself.
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 0d0877e..0d03026 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -2837,12 +2837,31 @@ sub parse_commit {
> %co = parse_commit_text(<$fd>, 1);
> close $fd;
>
> + my %notes = ();
> + foreach my $note_ref (get_note_refs()) {
> + my $obj = "$note_ref:$co{'id'}";
> + if (open my $fd, '-|', git_cmd(), 'rev-parse',
> + '--verify', '-q', $obj) {
> + my $exists = <$fd>;
> + close $fd;
> + if (defined $exists) {
> + if (open $fd, '-|', git_cmd(), 'show', $obj) {
> + $notes{$note_ref} = scalar <$fd>;
> + close $fd;
> + }
> + }
> + }
> + }
> + $co{'notes'} = \%notes;
> +
> return %co;
> }
Duplicated code. Please put this code in a separate subroutine, to be
called in those two places.
> # return all refs matching refs/notes/<globspecs> where the globspecs
> # are taken from the notes feature content.
> sub get_note_refs {
> + local $/ = "";
> +
Why it is needed here? Why you want to use empty lines as terminator
(which means reading whole paragraphs), while treating two or more
consecutive empty lines as a single empty line (according to
perlvar(1))?
If you want to slurp whole file, this should be
local $/;
or more explicit
local $/ = undef;
> my @globs = gitweb_get_feature('notes');
> my @note_refs = ();
> foreach my $glob (@globs) {
> @@ -5875,6 +5894,7 @@ sub git_commit {
>
> print "<div class=\"page_body\">\n";
> git_print_log($co{'comment'});
> + print format_notes_html($co{'notes'}, 'div');
> print "</div>\n";
>
> git_difftree_body(\@difftree, $hash, @$parents);
> @@ -6230,6 +6250,7 @@ sub git_commitdiff {
> git_print_log($co{'comment'}, -final_empty_line=> 1, -remove_title => 1);
> print "</div>\n"; # class="log"
> }
> + print format_notes_html($co{'notes'}, 'div');
>
> } elsif ($format eq 'plain') {
> my $refs = git_get_references("tags");
This of course assumes that we want notes treated exactly (or almost
exactly) the same way for 'log', 'commit' and 'commitdiff' views.
Perhaps it is a good assumption (at least for first step)...
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2010-02-06 13:16 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-04 16:18 [PATCH 0/4] gitweb: preliminary notes support Giuseppe Bilotta
2010-02-04 16:18 ` [PATCH 1/4] gitweb: notes feature Giuseppe Bilotta
2010-02-04 16:33 ` Junio C Hamano
2010-02-04 16:46 ` Junio C Hamano
2010-02-04 17:21 ` Jakub Narebski
2010-02-04 20:08 ` Giuseppe Bilotta
2010-02-04 21:03 ` Junio C Hamano
2010-02-04 23:38 ` Giuseppe Bilotta
2010-02-05 10:36 ` Johan Herland
2010-02-05 16:10 ` Junio C Hamano
2010-02-05 21:31 ` Giuseppe Bilotta
2010-02-05 22:31 ` Junio C Hamano
2010-02-06 8:16 ` Giuseppe Bilotta
2010-02-04 21:07 ` Junio C Hamano
2010-02-04 23:20 ` Jakub Narebski
2010-02-05 0:44 ` Jakub Narebski
2010-02-05 0:55 ` Junio C Hamano
2010-02-05 8:42 ` Giuseppe Bilotta
2010-02-05 23:44 ` Jakub Narebski
2010-02-06 9:02 ` Giuseppe Bilotta
2010-02-06 22:14 ` Jakub Narebski
2010-02-06 22:58 ` Giuseppe Bilotta
2010-02-07 1:20 ` Jakub Narebski
2010-02-07 1:38 ` Jakub Narebski
2010-02-07 1:48 ` Johan Herland
2010-02-07 11:08 ` Jakub Narebski
2010-02-07 11:14 ` Giuseppe Bilotta
2010-02-07 12:41 ` Jakub Narebski
2010-02-07 18:38 ` Junio C Hamano
2010-02-07 20:11 ` Giuseppe Bilotta
2010-02-07 21:08 ` Jakub Narebski
2010-02-07 10:57 ` Giuseppe Bilotta
2010-02-07 11:11 ` Jakub Narebski
2010-02-04 16:18 ` [PATCH 2/4] gitweb: show notes in shortlog view Giuseppe Bilotta
2010-02-06 0:18 ` Jakub Narebski
2010-02-06 9:24 ` Giuseppe Bilotta
2010-02-04 16:18 ` [PATCH 3/4] gitweb: show notes in log Giuseppe Bilotta
2010-02-06 12:57 ` Jakub Narebski
2010-02-06 13:14 ` Giuseppe Bilotta
2010-02-06 21:47 ` Jakub Narebski
2010-02-04 16:18 ` [PATCH 4/4] gitweb: show notes in commit(diff) view Giuseppe Bilotta
2010-02-06 13:16 ` Jakub Narebski [this message]
2010-02-06 14:15 ` Giuseppe Bilotta
2010-02-06 14:34 ` Jakub Narebski
2010-02-06 16:13 ` Giuseppe Bilotta
2010-02-06 21:50 ` Jakub Narebski
2010-02-06 22:17 ` Giuseppe Bilotta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201002061416.29481.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=giuseppe.bilotta@gmail.com \
--cc=johan@herland.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).