From: Junio C Hamano <gitster@pobox.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul Mackerras <paulus@samba.org>,
Marco Costalba <mcostalba@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH 3/2] Enhance --early-output format
Date: Mon, 05 Nov 2007 12:24:10 -0800 [thread overview]
Message-ID: <7vsl3kphjp.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <alpine.LFD.0.999.0711041124050.15101@woody.linux-foundation.org> (Linus Torvalds's message of "Sun, 4 Nov 2007 12:12:05 -0800 (PST)")
Linus Torvalds <torvalds@linux-foundation.org> writes:
> It wasn't totally trivial, but it doesn't seem to be excessively subtle
> either. About half the patch is moving around some code to look at whether
> the commit is interesting or not and rewriting the parents, so that it can
> be shared with the revision walker.
Very nicely done.
> + while (list) {
> + struct commit *commit = list->item;
> + unsigned int flags = commit->object.flags;
> +
> + list = list->next;
> + if (flags & UNINTERESTING)
> + continue;
> + if (rev->prune_fn && rev->dense && !(flags & TREECHANGE)) {
> + if (commit->parents && !commit->parents->next)
> + continue;
> + }
When looking at:
if (A && B && C) {
if (D && E)
continue;
}
an uninitiated might say "Huh? Why use nested 'if'?", but to
somebody who knows how revision traversal works, the above split
is a more logical way to test this condition. Maybe one liner
comment is in order?
> +static void show_early_header(struct rev_info *rev, const char *stage, int nr)
> +{
> + if (rev->shown_one) {
> + rev->shown_one = 0;
> + if (rev->commit_format != CMIT_FMT_ONELINE)
> + putchar(rev->diffopt.line_termination);
> + }
> + printf("Final output: %d %s\n", nr, stage);
> +}
As you noted, this is more like "Partial output" now.
How about painting the bikeshed pink by saying:
Partial output: 20
Partial output: 70
Final output: 70000
> + /* Did we already get enough commits for the early output? */
> + if (!i)
> + return;
> +
> + /*
> + * ..if no, then repeat it twice a second until we
> + * do.
> + *
> + * NOTE! We don't use "it_interval", because if the
> + * reader isn't listening, we want our output to be
> + * throttled by the writing, and not have the timer
> + * trigger every second even if we're blocked on a
> + * reader!
> + */
A comment like this is very much appreciated.
> + early_output_timer.it_value.tv_sec = 0;
> + early_output_timer.it_value.tv_usec = 500000;
> + setitimer(ITIMER_REAL, &early_output_timer, NULL);
> }
next prev parent reply other threads:[~2007-11-05 20:24 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-28 1:39 New features in gitk Paul Mackerras
2007-10-28 5:34 ` Linus Torvalds
2007-10-28 7:11 ` Paul Mackerras
2007-10-28 7:36 ` Steffen Prohaska
2007-10-28 16:50 ` Linus Torvalds
2007-11-01 10:00 ` Paul Mackerras
2007-11-01 15:16 ` Linus Torvalds
2007-11-02 10:19 ` Paul Mackerras
2007-11-02 12:44 ` Marco Costalba
2007-11-02 15:42 ` Linus Torvalds
2007-11-02 16:50 ` Marco Costalba
2007-11-02 18:16 ` Linus Torvalds
2007-11-02 20:31 ` [PATCH 0/2] History replay support Linus Torvalds
2007-11-02 20:32 ` [PATCH 1/2] Simplify topo-sort logic Linus Torvalds
2007-11-02 20:35 ` [PATCH 2/2] Support "history replay" for git log commands Linus Torvalds
2007-11-02 21:05 ` Junio C Hamano
2007-11-02 21:17 ` Linus Torvalds
2007-11-03 1:40 ` [PATCH 0/2] History replay support Linus Torvalds
2007-11-03 7:56 ` Marco Costalba
2007-11-03 18:11 ` [REPLACEMENT PATCH 2/2] Add "--early-output" log flag for interactive GUI use Linus Torvalds
2007-11-03 19:52 ` Marco Costalba
2007-11-04 3:06 ` Paul Mackerras
2007-11-04 5:38 ` Linus Torvalds
2007-11-04 7:10 ` Paul Mackerras
2007-11-04 7:52 ` Marco Costalba
2007-11-04 18:11 ` Linus Torvalds
2007-11-04 20:12 ` [PATCH 3/2] Enhance --early-output format Linus Torvalds
2007-11-05 20:24 ` Junio C Hamano [this message]
2007-11-05 20:47 ` Linus Torvalds
2007-11-05 21:22 ` Linus Torvalds
2007-11-05 21:35 ` Linus Torvalds
2007-11-13 4:58 ` [PATCH 4/2] Fix parent rewriting in --early-output Linus Torvalds
2007-11-13 5:43 ` Junio C Hamano
2007-11-13 6:46 ` Linus Torvalds
2007-11-13 7:16 ` Linus Torvalds
2007-11-13 7:53 ` Sven Verdoolaege
2007-11-13 8:48 ` Junio C Hamano
2007-11-13 8:01 ` Shawn O. Pearce
2007-11-13 8:24 ` Junio C Hamano
2007-11-13 9:59 ` Paul Mackerras
2007-11-13 18:53 ` Junio C Hamano
2007-11-13 21:55 ` Paul Mackerras
2007-11-16 7:30 ` Marco Costalba
2007-11-04 0:32 ` [PATCH 0/2] History replay support Paul Mackerras
2007-11-02 18:17 ` New features in gitk Johannes Schindelin
2007-11-02 15:03 ` Linus Torvalds
2007-11-01 11:37 ` Paul Mackerras
2007-11-01 15:47 ` Linus Torvalds
2007-11-01 16:21 ` Linus Torvalds
2007-10-28 18:32 ` Pierre Habouzit
2007-10-28 18:38 ` Mike Hommey
2007-10-28 23:13 ` Paul Mackerras
2007-10-29 6:20 ` Pierre Habouzit
2007-10-29 8:31 ` Jonathan del Strother
2007-10-29 6:24 ` Pierre Habouzit
2007-10-29 13:30 ` Han-Wen Nienhuys
2007-10-29 14:04 ` Michele Ballabio
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=7vsl3kphjp.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=mcostalba@gmail.com \
--cc=paulus@samba.org \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.