"private-kvp" merge reverted other changes since November.

Geert Janssens janssens-geert at telenet.be
Thu May 15 15:09:01 EDT 2014

On Thursday 15 May 2014 11:17:50 John Ralls wrote:
> On May 14, 2014, at 10:06 AM, Geert Janssens <janssens-
geert at telenet.be> wrote:
> > Interesting. Did you close and re-open SourceTree after you switched
> > to master ?
> No, but I don’t remember which branch I was checked out in when I
> opened it. Doesn’t seem to matter, though. FWIW, I just tried to
> reproduce the switching yard with gitk in F18, and couldn’t.
> That’s after starting with master checked out, checking out maint,
> redrawing in gitk, check out master, and redraw again.

It's odd this doesn't happen for you... I see this consistently when I 
start gitk with
gitk --all
and master was checked out. Just running gitk doesn't. But if I then 
check out maint on the command line and refresh the gitk window the 
switching yard reappears.

> > On gitk that seems to make a difference. If master is the active
> > branch when I open gitk I get the switching-yard. However if maint
> > is the active branch I get a much cleaner ladder like SourceTree
> > shows. And that clean ladder remains if I then swith the master
> > within gitk.
> > 
> > Meanwhile I have also tried qgit but it behaves exactly the same.
> > Both tools appear to get their input from git log and are probably
> > pretty dumb in how to parse that.
> Git rev-list, for which git log is a front end.
> It appears from the graphs that getting the commits in the right order 
is the main issue: The switching-yard look comes from having the other-
branch merge parents out of date order, as if the graph was produced by 
gluing together chunks of output from runs of git rev-list on each 
branch. Browsing through the rev-list man page I find:
> > --topo-order
> > Show no parents before all of its children are shown, and avoid
> > showing commits on multiple lines of history intermixed.> 
> > For example, in a commit history like this:
> >     ---1----2----4----7
> >     
> >         \              \
> >         
> >          3----5----6----8---
> > 
> > where the numbers denote the order of commit timestamps, git
> > rev-list and friends with --date-order show the commits in the
> > timestamp order: 8 7 6 5 4 3 2 1.
> > 
> > With --topo-order, they would show 8 6 5 3 7 4 2 1 (or 8 7 4 2 6 5 3
> > 1); some older commits are shown before newer ones in order to
> > avoid showing the commits from two parallel development track mixed
> > together.
> Switching to the gitk man page,
> > To control which revisions to show, the command takes options
> > applicable to the git rev-list command (see git-rev-list(1)). This
> > manual page describes only the most frequently used options.
> So perhaps a little experimentation is in order; In particular, try
> `gitk —date-order`.

That does the trick !
Even gitk --date-order --all still results in a clean ladder. I can make 
an alias for this.

> > Perhaps I should report this as a bug or enahncement request in
> > gitk...
> I’d do some research first. Searching “gitk commit order” yielded
> (among much else, of course)
> http://git.661346.n2.nabble.com/Gitk-commit-order-leads-to-unnecessar
> ily-long-lines-td7567302.html which led to
> http://thread.gmane.org/gmane.comp.version-control.git/18097/focus=181
> 03 suggesting that it’s a well-known issue.

Well if they haven't fixed it by now they probably have reason not to. I 
haven't read through the whole thread on gmane. Perhaps it was explained 
later on.

With this workaround I have no more issues with long lived topic 
branches that periodically are merged back into master. That's my final 

> Regards,
> John Ralls

More information about the gnucash-devel mailing list