git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: git@vger.kernel.org
Subject: log -S with evil merges
Date: Sat, 10 Jul 2010 14:48:38 -0500	[thread overview]
Message-ID: <20100710194838.GA2315@burratino> (raw)

Hi,

I was interested to know the origin of the UE_ALWAYS et al flags in
builtin/reflog.c, so I asked git:

 ; git log --oneline -S'UE_ALWAYS' --follow builtin/reflog.c
 81b50f3 Move 'builtin-*' into a 'builtin/' subdirectory
 4264dc1 git reflog expire

Ok, clearly it was not introduced in the builtin/ move.  I guess the
UE_ flags were part of the original ‘reflog’ implementation.  Right?

 ; git show 4264dc1 | grep UE_ALWAYS
 ; git show 4264dc1:builtin-reflog.c | grep UE_ALWAYS
 ;

No, that’s not it.  At this point I decided -S is broken and just did
a grep through log -p, to find that apparently this symbol was
introduced in builtin-reflog.c with v1.7.2-rc0~122^2 (reflog
--expire-unreachable: special case entries in "HEAD" reflog,
2010-04-09).

So why is log confused?  As far as log -S knows, because of the
builtin/ move, commit v1.7.2-rc0~122 was an evil merge that produced
the UE_ flags in builtin/reflog.c out of thin air.  It should be
blaming that commit, then.  With a little coaxing, it does.

 ; git log --format=oneline \
	--first-parent -m -S'UE_ALWAYS' --follow builtin/reflog.c |
   git name-rev --tags --stdin |
   cut -d' ' -f2-
 (tags/v1.7.2-rc0~122) Merge branch 'jc/maint-no-reflog-expire-unreach-for-head'
 (tags/v1.7.1-rc0~76) Merge branch 'lt/deepen-builtin-source'
 (tags/v1.5.0-rc1~188) Merge branch 'jc/fsck-reflog'
 ;

The first is the culprit, the second and third the file’s renaming and
introduction[1].

The more logical

 ; git log --oneline -c -S'UE_ALWAYS' --follow builtin/reflog.c

does not work --- it mentions _all_ merges.  Why?

[1] I don’t know why ‘log -S --follow’ should feel the need to point
these out, but that’s a different story.

             reply	other threads:[~2010-07-10 19:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-10 19:48 Jonathan Nieder [this message]
2010-07-12  6:12 ` log -S with evil merges Junio C Hamano
2010-07-12  6:39   ` Jonathan Nieder

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=20100710194838.GA2315@burratino \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.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 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).