From: Junio C Hamano <gitster@pobox•com>
To: Konstantin Khomoutov <kostix+git@007spb•ru>
Cc: Joao Pinto <Joao.Pinto@synopsys•com>, <git@vger•kernel.org>,
Linus Torvalds <torvalds@linux-foundation•org>,
"CARLOS.PALMINHA\@synopsys.com" <CARLOS.PALMINHA@synopsys•com>
Subject: Re: Git: new feature suggestion
Date: Thu, 19 Jan 2017 10:17:29 -0800 [thread overview]
Message-ID: <xmqqa8am3oee.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170119093313.ea57832dfd1bc7e0b0f1e630@domain007.com> (Konstantin Khomoutov's message of "Thu, 19 Jan 2017 09:33:13 +0300")
Konstantin Khomoutov <kostix+git@007spb•ru> writes:
> Still, I welcome you to read the sort-of "reference" post by Linus
> Torvalds [1] in which he explains the reasoning behind this approach
> implemented in Git. IMO, understanding the reasoning behind the idea
> is much better than just mechanically learning how to use it.
>
> The whole thread (esp. Torvalds' replies) is worth reading, but that
> particular mail summarizes the whole thing very well.
>
> (The reference link to it used to be [2], but Gmane is not fully
> recovered to be able to display it.)
>
> 1. http://public-inbox.org/git/Pine.LNX.4.58.0504150753440.7211@ppc970.osdl.org/
> 2. http://thread.gmane.org/gmane.comp.version-control.git/27/focus=217
Indeed. Thanks for providing a link to it here ;-)
The message is the most important one in the early history of Git,
and it still is one of the most important messages in the Git
mailing-list archive. "git log -S<block>" was designed to take a
block of text (even though people misuse it and feed a single line
to it) exactly because it wanted to serve the "tracking when that
file+line changed" part in that vision. The rename detection in
"diff" was meant to be used on the commit "git log -S<block>" finds
to see if the found change came from another file so that the user
can decide that "digging further" part needs to be done for another
file. "git blame" with -M and -C options were done to mostly
automate the "drilling down" process that finds the last commit that
touched each line in the above process, and when used with tools
like "tig", you can even peel one commit back and "zoom down" if the
found commit is an uninteresting one (e.g. a change with only code
formatting).
One thing that is still missing in the current version of Git,
compared to the "ideal SCM" the message envisioned, is the part that
notices: "oops, that line didn't even exist in the previous version,
BUT I FOUND FIVE PLACES that matched almost perfectly in the same
diff, and here they are".
next prev parent reply other threads:[~2017-01-19 18:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-18 10:40 Git: new feature suggestion Joao Pinto
2017-01-18 18:50 ` Stefan Beller
2017-01-18 19:04 ` Joao Pinto
2017-01-19 6:33 ` Konstantin Khomoutov
2017-01-19 17:55 ` Joao Pinto
2017-01-19 18:17 ` Junio C Hamano [this message]
2017-01-19 18:39 ` Linus Torvalds
2017-01-19 18:54 ` Joao Pinto
2017-01-19 19:16 ` Linus Torvalds
2017-01-19 21:51 ` Joao Pinto
2017-01-19 22:03 ` Stefan Beller
2017-01-20 10:44 ` Joao Pinto
2017-01-19 21:48 ` Jakub Narębski
2017-01-20 0:26 ` Linus Torvalds
2017-01-20 11:18 ` Jakub Narębski
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=xmqqa8am3oee.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox$(echo .)com \
--cc=CARLOS.PALMINHA@synopsys$(echo .)com \
--cc=Joao.Pinto@synopsys$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=kostix+git@007spb$(echo .)ru \
--cc=torvalds@linux-foundation$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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