From: Thomas Rast <trast@inf.ethz.ch>
To: Paul Mackerras <paulus@samba.org>
Cc: Jens Lehmann <Jens.Lehmann@web.de>, <git@vger.kernel.org>
Subject: Re: [PATCH gitk 0/4] gitk support for git log -L
Date: Mon, 19 Aug 2013 10:21:38 +0200 [thread overview]
Message-ID: <874namay5p.fsf@linux-k42r.v.cablecom.net> (raw)
In-Reply-To: <20130818115456.GA6772@iris.ozlabs.ibm.com> (Paul Mackerras's message of "Sun, 18 Aug 2013 21:54:57 +1000")
Paul Mackerras <paulus@samba.org> writes:
> Hi Thomas,
>
> On Wed, Jul 31, 2013 at 03:17:41PM +0200, Thomas Rast wrote:
>> Jens Lehmann <Jens.Lehmann@web.de> writes:
>>
>> > Am 29.07.2013 21:37, schrieb Thomas Rast:
>> >> Thomas Rast <trast@inf.ethz.ch> writes:
>> >>
>> >>> Thomas Rast <trast@inf.ethz.ch> writes:
>> >>>
>> >>>> Now that git log -L has hit master, I figure it's time to discuss the
>> >>>> corresponding change to gitk.
[...]
>
> One thing I worry about is having gitk storing in memory not just the
> history graph but also all the diffs (assuming I have understood
> correctly what you're doing). Gitk's memory consumption is already
> pretty large. However, I can't see an alternative at this point.
I don't think there is one. log -L is pretty much an "all or nothing"
thing at this point. I suppose if we really found that the diffs are
regularly too big to be manageable for gitk, we could invent a porcelain
mode where 'log -L' just prints the detected commits and corresponding
line ranges, and then have a new option to diff-tree to let it again
filter that range.
But note that ordinary 'git log -L' also buffers the entire set of diffs
within less. The memory consumption of gitk to hold the same diffs in
memory should be only a small factor of what less uses in the same
scenario. Furthermore, users will typically ask for a small region of
code (one function, or some such), so the diffs themselves are usually
quite small, nowhere near the size of the full commit diffs.
>> Unfortunately it's turning out to be harder than I hoped. gitk runs the
>> arguments through git-rev-parse, which only knows that -n gets an
>> unstuck argument. Consequently, gitk accepts an unstuck -n but only
>> stuck forms of -S and -G.
>
> Excuse my ignorance, but what do you mean by "stuck" vs. "unstuck"?
Whether the option value is a separate argument in argv, or directly
stuck to the option.
stuck: gitk -L:foo:main.c
unstuck: gitk -L :foo:main.c
Existing gitk chokes on 'gitk -S foo', but works with 'git -Sfoo'.
--
Thomas Rast
trast@{inf,student}.ethz.ch
next prev parent reply other threads:[~2013-08-19 8:21 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-09 19:44 [PATCH gitk 0/4] gitk support for git log -L Thomas Rast
2013-06-09 19:44 ` [PATCH gitk 1/4] gitk: refactor per-line part of getblobdiffline and its support Thomas Rast
2013-06-09 19:44 ` [PATCH gitk 2/4] gitk: split out diff part in $commitinfo Thomas Rast
2013-06-09 19:44 ` [PATCH gitk 3/4] gitk: support showing the gathered inline diffs Thomas Rast
2013-06-09 19:44 ` [PATCH gitk 4/4] gitk: recognize -L option Thomas Rast
2013-07-23 15:19 ` [PATCH gitk 0/4] gitk support for git log -L Thomas Rast
2013-07-29 19:37 ` Thomas Rast
2013-07-29 20:07 ` Jens Lehmann
2013-07-31 13:17 ` Thomas Rast
2013-08-18 11:54 ` Paul Mackerras
2013-08-19 8:21 ` Thomas Rast [this message]
2013-08-19 17:30 ` Junio C Hamano
2013-10-13 6:31 ` Thomas Rast
2013-10-14 5:25 ` Jonathan Nieder
2013-10-20 16:57 ` [PATCH] Documentation: revamp gitk(1) Thomas Rast
2013-10-29 7:20 ` [PATCH v2 0/7] gitk -L Thomas Rast
2013-10-29 7:20 ` [PATCH v2 1/7] gitk: support -G option from the command line Thomas Rast
2013-10-30 0:52 ` Junio C Hamano
2013-10-30 6:30 ` Thomas Rast
2013-10-30 16:42 ` Junio C Hamano
2013-10-29 7:20 ` [PATCH v2 2/7] gitk: refactor per-line part of getblobdiffline and its support Thomas Rast
2013-10-29 7:20 ` [PATCH v2 3/7] gitk: split out diff part in $commitinfo Thomas Rast
2013-10-29 7:20 ` [PATCH v2 4/7] gitk: support showing the gathered inline diffs Thomas Rast
2013-10-29 7:20 ` [PATCH v2 5/7] gitk: recognize -L option Thomas Rast
2013-10-29 7:20 ` [PATCH v2 6/7] Documentation: put blame/log -L in sticked form Thomas Rast
2013-10-30 1:11 ` Junio C Hamano
2013-10-30 6:29 ` Thomas Rast
2013-10-30 17:09 ` Junio C Hamano
2013-10-30 18:59 ` Thomas Rast
2013-10-30 19:37 ` Junio C Hamano
2013-11-16 17:37 ` [PATCH v3 gitk 0/5] gitk -L Thomas Rast
2013-11-16 17:37 ` [PATCH v3 gitk 1/5] gitk: support -G option from the command line Thomas Rast
2013-11-16 17:37 ` [PATCH v3 gitk 2/5] gitk: refactor per-line part of getblobdiffline and its support Thomas Rast
2013-11-16 17:37 ` [PATCH v3 gitk 3/5] gitk: split out diff part in $commitinfo Thomas Rast
2013-11-16 17:37 ` [PATCH v3 gitk 4/5] gitk: support showing the gathered inline diffs Thomas Rast
2013-11-16 17:37 ` [PATCH v3 gitk 5/5] gitk: recognize -L option Thomas Rast
2013-12-01 22:25 ` [PATCH v3 gitk 0/5] gitk -L Paul Mackerras
2013-11-16 17:37 ` [PATCH v3 0/3] Documentation: stuck arguments and gitk log -L Thomas Rast
2013-11-16 17:37 ` [PATCH v3 1/3] commit-tree: use prefixcmp instead of memcmp(..., N) Thomas Rast
2013-11-16 17:37 ` [PATCH v3 2/3] Documentation: convert to --option=arg form where possible Thomas Rast
2013-11-16 17:37 ` [PATCH v3 3/3] Documentation/gitk: document -L option Thomas Rast
2013-10-29 7:20 ` [PATCH v2 7/7] " Thomas Rast
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=874namay5p.fsf@linux-k42r.v.cablecom.net \
--to=trast@inf.ethz.ch \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=paulus@samba.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.