From: Bo Yang <struggleyb.nku@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: gitzilla@gmail.com, Alex Riesen <raa.lkml@gmail.com>,
git@vger.kernel.org
Subject: Re: GSoC draft proposal: Line-level history browser
Date: Mon, 22 Mar 2010 15:31:27 +0800 [thread overview]
Message-ID: <41f08ee11003220031p6fda651eycff2641df10864da@mail.gmail.com> (raw)
In-Reply-To: <7vhbo8syyf.fsf@alter.siamese.dyndns.org>
On Mon, Mar 22, 2010 at 1:32 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Bo Yang <struggleyb.nku@gmail.com> writes:
>
>> The 'blame' way is very good if we only support one line range. But if
>> we want to support multiple line ranges, I don't think it is suitable
>> for that case. Anyway, how can I specify multi-ranges which refers to
>> multiple files at multiple revision and multiple line ranges using
>> above syntax?
>
> I would sort of see you may want to be able to say "explain lines 10 thru
> 15 of config.h and lines 100-115 of hello.c that appear in v1.2.0", but I
> think it is a total nonsense to ask for "ll 10-15 of config.h in v1.2.0
> and ll 110-115 of hello.c in v1.0.0". After all they never existed in the
> same revision (otherwise you would have said "ll 7-13 of config.h and ll
> 110-115 of hello.c that appear in v1.0.0"). So I would reject the
> SVN-like "rev@" in the first place.
>
> While I don't seriously buy "multiple files" either, if that is really
> needed, I could be pursuaded with "log -- path1:10-15 path2:1-7", or
> "log -L path1:10-15 -Lpath2:1-7 -- path1 path2" or something similarly
> ugly like these, but that is not how we generally name things, and it
> probably shouldn't be a new option to "log" anymore.
>
> On the other hand, multiple ranges in a single file is something that
> may be quite reasonable, e.g.
>
> $ git log -L10-15 -L200-210 -- Makefile
> $ git log -L'*/^#ifdef WINDOWS/,/^#endif \/\* WINDOWS \/\*/' -- config.h
Yeah, maybe one file multiple ranges is most rationale.
> As I already said, I wouldn't be so worried about multiple-range feature,
> but I would be worried about the usefulness of this feature, even for the
> case to track a single range of a single file, starting from one given
> revision.
I am sorry, but I did not catch up you here. You worried about the
usefulness of the multi-range feature or the line level history
browser?
I think tracking a single range of a single file, starting from one
given revision is useful when the line of history split on some point.
This can let users focus on a single line of history using this
feature.
>When you want to know where the first few lines of Makefile
> came from, and if blame says the first line came from 2731d048, that
> really means that between the revision you started digging from and the
> found revision, there is no commit that touched that particular line, but
> equally importantly, that before that found revision, there wasn't a
> corresponding line in that file---blame stopped exactly because there is
> nobody before that found revision that the line can be blamed on.
>
> So implementing "git log -L1,10 -- Makefile" might be just the matter of
> doing something like:
>
> 1. Run "git blame -L1,10 -- Makefile";
> 2. Note the commits that appear in the output;
> 3. Topologically sort these commits;
> 4. Run "git show <the result of that toposort>"
>
> which is not very satisfying.
Yes, this is not satisfying. But as I understand, the line level
history browser will do more than just this. It will not stop on 'step
4', it can follow the change history recursively and deeply, to find
more. I think this is useful when we focus just one a range of code
and want to know how it become into such a now condition.
Anyway, it is not a bad thing too add a new convenient feature to a
daily tool. :)
Regards!
Bo
next prev parent reply other threads:[~2010-03-22 7:31 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-20 9:18 GSoC draft proposal: Line-level history browser Bo Yang
2010-03-20 11:30 ` Johannes Schindelin
2010-03-20 13:10 ` Bo Yang
2010-03-20 13:30 ` Junio C Hamano
2010-03-21 6:03 ` Bo Yang
2010-03-20 13:36 ` Johannes Schindelin
2010-03-21 6:05 ` Bo Yang
2010-03-20 20:35 ` Alex Riesen
2010-03-20 20:57 ` Junio C Hamano
2010-03-21 6:10 ` Bo Yang
2010-03-20 21:58 ` A Large Angry SCM
2010-03-21 6:16 ` Bo Yang
2010-03-21 13:19 ` A Large Angry SCM
2010-03-22 3:48 ` Bo Yang
2010-03-22 4:24 ` Junio C Hamano
2010-03-22 4:34 ` Bo Yang
2010-03-22 5:32 ` Junio C Hamano
2010-03-22 7:31 ` Bo Yang [this message]
2010-03-22 7:41 ` Junio C Hamano
2010-03-22 7:52 ` Bo Yang
2010-03-22 8:10 ` Jonathan Nieder
2010-03-23 6:01 ` Bo Yang
2010-03-23 10:08 ` Jakub Narebski
2010-03-23 10:38 ` Bo Yang
2010-03-23 11:22 ` Jakub Narebski
2010-03-23 12:23 ` Bo Yang
2010-03-23 13:49 ` Jakub Narebski
2010-03-23 15:23 ` Bo Yang
2010-03-23 19:57 ` Jonathan Nieder
2010-03-23 21:51 ` A Large Angry SCM
2010-03-24 2:30 ` Bo Yang
2010-03-23 12:02 ` Peter Kjellerstedt
2010-03-23 18:57 ` Jonathan Nieder
2010-03-24 2:39 ` Bo Yang
2010-03-24 4:02 ` Jonathan Nieder
2010-03-22 10:39 ` Alex Riesen
2010-03-22 15:05 ` Johannes Schindelin
2010-03-22 3:52 ` Bo Yang
2010-03-22 15:48 ` Jakub Narebski
2010-03-22 18:21 ` Johannes Schindelin
2010-03-22 18:38 ` Sverre Rabbelier
2010-03-22 19:26 ` Johannes Schindelin
2010-03-22 20:21 ` Sverre Rabbelier
2010-03-22 19:24 ` Johannes Schindelin
2010-03-23 6:08 ` Bo Yang
2010-03-23 6:27 ` Bo Yang
[not found] ` <201003282120.40536.trast@student.ethz.ch>
2010-03-29 4:14 ` Bo Yang
2010-03-29 18:42 ` Thomas Rast
2010-03-30 2:52 ` Bo Yang
2010-03-30 9:07 ` Michael J Gruber
2010-03-30 9:38 ` Michael J Gruber
2010-03-30 11:10 ` Bo Yang
2010-03-30 9:10 ` Jakub Narebski
2010-03-30 11:15 ` Bo Yang
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41f08ee11003220031p6fda651eycff2641df10864da@mail.gmail.com \
--to=struggleyb.nku@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=gitzilla@gmail.com \
--cc=raa.lkml@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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).