Re: [BUG] Highly inconsistent diff UI

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [BUG] Highly inconsistent diff UI

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:57:04

Ramkumar Ramachandra [off-list ref] writes:
quoted
quoted
$ git log rebase.autostash ^$(git merge-base rebase.autostash master)
Depending on which one of B or C is chosen it is either one of these:

 - range "^B H" which lists "H G D C"
 - range "^C H" which lists "H G D B"

neither of which is more useful than "H G D", as it shows irrelevant
"other merge base" you did not pick.
Correction:

Range "^B H" lists "H G D A..C" while range "^C H" lists "H G D A..B".
Now you confused me.  A is reachable from B (or C) and you
are saying "^B H" (or "^C H").  Why does either of it show A?

Wait.  What does "lists H G D A..C" even mean?  H, G and D I would
understand, but how does "log" ever "list" A..C???

Now you really confused me.

A is not listed (it is explicitly marked uninteresting by being on
the left side of double-dots).  So we see either "H G D C" or "H G D
B".  We see no A in either case, no?
In reality, it shows A..B, which is what I want and what am claiming
is "useful".
What does it mean "log" "In reality" shows A..B?  Didn't you just
say it either lists "H G D C" or "H G D B"?  Neither B nor C is what
you did since you forked?  Now, what did you do since you folked
(which is the question you are asking)?  You made commit D,
back-merged from upstream to record G, and then made another commit
H.  That "H G D", which is what you get from "log F..H", isn't it??

Re: [BUG] Highly inconsistent diff UI

From: Ramkumar Ramachandra <hidden>
Date: 2016-06-15 22:57:04

Junio C Hamano wrote:
Wait.  What does "lists H G D A..C" even mean?  H, G and D I would
understand, but how does "log" ever "list" A..C???

Now you really confused me.
What you said was technically correct.  I was pointing out that the
graph was misleading because it didn't show any commits between A and
B/C.  A is ofcourse UNINTERESTING.
What does it mean "log" "In reality" shows A..B?  Didn't you just
say it either lists "H G D C" or "H G D B"?  Neither B nor C is what
you did since you forked?  Now, what did you do since you folked
(which is the question you are asking)?  You made commit D,
back-merged from upstream to record G, and then made another commit
H.  That "H G D", which is what you get from "log F..H", isn't it??
Okay, so the question is ill-formed.  The technically correct version
is "which commits are reachable from my branch since I forked off?",
but I don't know if anyone will want to ask that question.  If you
have no more inputs, I'll concede that it's not useful in the log
case.

I'm trying to look for one more command that will find A~B useful, so
we can remove the A...B wart from diff; inventing it just to replace
the wart isn't reason enough.  Do you disagree with the approach?

What are your thoughts on overloading it for rebase?  git rebase
master~ to rebase onto the merge-base of master and HEAD?

Re: [BUG] Highly inconsistent diff UI

From: Ramkumar Ramachandra <hidden>
Date: 2016-06-15 22:57:04

Ramkumar Ramachandra wrote:
What are your thoughts on overloading it for rebase?  git rebase
master~ to rebase onto the merge-base of master and HEAD?
I just realized that I meant

    git rebase master..

and not

    git rebase master~

I want to rebase the merge commit, not the merge-base along with it!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help