Re: gitk dev branch: F5 problem again

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Johannes Sixt writes:

> I'm using gitk's dev branch (476ca63d Index [fnvr]highlights by id...) on
> Windows.
> 
> Start gitk like this:
> 
>    gitk somefile.c
> 
> while on a branch whose tip touches somefile.c.
> 
> Now:
> 
>    git commit --amend
> 
> Then press F5 in gitk. I get these error reports after which gitk is
> unresponsive:
> 
> can't read "children(1,)": no such element in array

Thanks.

I found the reason for the Tcl errors - an incorrect optimization in
make_disporder - and I have pushed out a fix.

However, that shows up another problem, due to the way parent
rewriting does (or doesn't) work when we are limiting both by
revisions and by path.  When you press F5 in the above scenario, you
will get the new version of the commit, with its real parent shown as
an open-circle commit, disconnected from the rest of the graph.

What's happening here is that to do the update, gitk first re-reads
all the references, notices that the head has changed, and does a git
log command like:

	git log newhead ^oldhead -- somefile.c

The git log traversal stops as soon as it finds a commit which is an
ancestor of oldhead, which in this case will be oldhead's (and
newhead's) real parent.  Because the traversal doesn't go far enough
to find another commit that touches somefile.c (which would be the
fake parent that gitk would want to use for the graph), the parent
rewriting doesn't happen and git log outputs the newhead commit with
its real parent rather than a fake parent.  Assuming the real parent
doesn't touch somefile.c, it is a commit that gitk doesn't have in its
graph, so it can't join newhead into the existing graph properly.  I'm
not sure how best to fix that.  I'll have to think about it.

Paul.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux