git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "René Scharfe" <rene.scharfe@lsrfire.ath.cx>
To: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 00/12] Support columinized output in tag/branch/ls-files/grep
Date: Thu, 11 Mar 2010 22:13:48 +0100	[thread overview]
Message-ID: <4B995D0C.2090000@lsrfire.ath.cx> (raw)
In-Reply-To: <fcaeb9bf1003091627p65ad6e60u4bbae2eb4e859f13@mail.gmail.com>

Am 10.03.2010 01:27, schrieb Nguyen Thai Ngoc Duy:
> On 3/9/10, René Scharfe <rene.scharfe@lsrfire.ath.cx> wrote:
>>  With "more complicated", do you perhaps mean what GNU ls does, namely
>>  having non-uniform column widths?  I never consciously noticed that it
>>  actually goes out of its way to cram as may columns on the screen as
>>  possible, it just feels so natural. :)
> 
> That. And aligned grep output like this
> 
> pclouds@do ~/w/git/builtin $ git grep -n 38
> count-objects.c  |  35 |                if (cp - ent->d_name != 38)
> count-objects.c  |  39 |                        memcpy(path + len + 3,
> ent->d_name, 38);
> count-objects.c  |  59 |                memcpy(hex+2, ent->d_name, 38);
> fsck.c           | 405 |                if (strlen(de->d_name) == 38) {
> gc.c             | 112 |                if (strspn(ent->d_name,
> "0123456789abcdef") != 38 ||
> gc.c             | 113 |                    ent->d_name[38] != '\0')
> prune-packed.c   |  24 |                if (strlen(de->d_name) != 38)
> prune-packed.c   |  26 |                memcpy(hex+2, de->d_name, 38);
> prune-packed.c   |  31 |                memcpy(pathname + len, de->d_name, 38);
> prune.c          |  64 |                if (strlen(de->d_name) == 38) {
> receive-pack.c   | 588 |        char hdr_arg[38];
> upload-archive.c |  86 |        char buf[16384];

Hmm, I'm not sure that this columnizing is very useful in this instance.
 You can more easily compare the line numbers and the indent level of
the hits, but both pieces of information are only useful in the context
of the file, so this easier comparison doesn't buy you much.

Another possible use might be the list of untracked files shown by
status and commit, by the way.

>> I don't see any benefit of an environment variable over config options.
> 
> Currently we may pass --column=<foo> from a porcelain to "git column
> --mode=<foo>", <foo> could be column first, or row first, or either
> with non-uniform columns (not implemented yet). We can also pass other
> things to "git column". Putting everything in "<foo>" is OK, although
> looks ugly. In my private tree, I also have "git column
> --min-rows/--max-items" that forces the columnizer to one column mode
> if:
>  - there will be only one or two rows after columnized, too wide
> screen for example (--min-rows)

Well, I can't imagine when I would want to use this option.  If I'm OK
with n + 100 items being displayed in x columns, I'd certainly be OK
with n items being displayed the same way, even if they only take up a
single row.

>  - too many lines and the layout has not been fixed, so nothing gets
> printed (--max-items). Forcing back to one column mode to stop wait
> time.

Interesting idea, but I'm not sure if I'd want to use it, too.  Best
effort pretty-printing combines fast output and optimized display at
first glance.  However, if there are lots of items then the user would
benefit the most from having them columnized.

If it takes too long to show the first line of output (since the
columnizer needs to wait for all items to be generated) then the command
should only columnize on request.

René

  parent reply	other threads:[~2010-03-11 21:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-07 12:09 [PATCH 00/12] Support columinized output in tag/branch/ls-files/grep Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 01/12] Move term_columns() to pager.c Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 02/12] setup_pager(): save terminal width before redirecting stdout Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 03/12] Add columnizer Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 04/12] help: use columnizer Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 05/12] Add builtin command "column" Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 06/12] Add helpers to redirect stdout to "git column" Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 07/12] add core.columns Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 08/12] tag: support column output with --columns Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 09/12] branch: " Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 10/12] ls-files: " Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 11/12] grep: do not return early in cmd_grep() if there is no error Nguyễn Thái Ngọc Duy
2010-03-07 12:09 ` [PATCH 12/12] grep: support column output with --columns Nguyễn Thái Ngọc Duy
2010-03-08 14:08 ` [PATCH 00/12] Support columinized output in tag/branch/ls-files/grep René Scharfe
2010-03-08 14:32   ` Nguyen Thai Ngoc Duy
2010-03-09 16:49     ` René Scharfe
2010-03-10  0:27       ` Nguyen Thai Ngoc Duy
2010-03-10  7:26         ` Johannes Sixt
2010-03-10 12:12           ` Nguyen Thai Ngoc Duy
2010-03-11 21:13         ` René Scharfe [this message]
2010-03-12  4:22           ` Nguyen Thai Ngoc Duy
2010-03-08 23:08   ` Junio C Hamano
2010-03-09  2:06     ` Nguyen Thai Ngoc Duy
2010-03-09  2:14       ` Junio C Hamano

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=4B995D0C.2090000@lsrfire.ath.cx \
    --to=rene.scharfe@lsrfire.ath.cx \
    --cc=git@vger.kernel.org \
    --cc=pclouds@gmail.com \
    /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).