Re: [git pull] core fixes

Linus Torvalds
2008-10-23T16:44:19Z

On Tue, 21 Oct 2008, Ingo Molnar wrote:
>
> this is because the merge-base of this tree is 2e532d68a2, while your
> tree that merges this is fresher.
>
> I did not want to merge to your latest, to not create an unnecessary
> merge commit. But i could not find a way either how to generate a proper
> shortlog either.

Just do

# update the remote branches
git fetch linus
# get the log difference
git shortlog linus..

because "git log" and friends don't care about the merge base, they only
care about the actual commit _set_difference_. So "linus.." is shorthand
for "linus..HEAD", which in turn means "Which commits are in HEAD but not
in 'linus".

Doing a _diff_ is different, and when you do "git diff linus.." doesn't
mean a set difference, it means an "endpoint difference", and there you
need to find the merge base in order to get a sane answer. Of course, then
the diff won't necessarily be what I see, since common commits will
disappear. But even there, you can do

git diff linus...

where the triple dots mean "symmetric set difference" for a log-based (ie
"set operation") operation, but means "difference from common merge base"
for an endpoint operation (ie "git diff").

Linus