{"thread":{"id":"1543","subject":"gitk with hyperspace support","startedAt":"2005-08-17T00:21:04Z","lastAt":"2005-09-02T13:20:00Z","messageCount":13,"participants":["Paul Mackerras","Linus Torvalds","Junio C Hamano","Sean","Matthias Urlichs","Alex Riesen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"7403","messageId":"17154.33520.584666.701545@cargo.ozlabs.ibm.com","threadId":"1543","inReplyTo":null,"subject":"gitk with hyperspace support","fromName":"Paul Mackerras","fromEmail":"paulus@samba.org","sentAt":"2005-08-17T00:21:04Z","receivedAt":"2005-08-17T00:21:04Z","isPatch":false,"sender":{"key":"paulus@samba.org","avatar":"https://avatars.githubusercontent.com/u/1606439?v=4"},"body":"I have been trying a new approach to drawing the commit graph in gitk.\nThis involves sending a lot of the really long lines into\n\"hyperspace\", by terminating them with an arrow pointing down when the\ngraph gets too wide, and then reintroducing them later with an arrow\npointing up, as though they had used a warp drive to dive beneath the\nscreen (into the mysterious 3rd dimension :) and then reappear later.\nThe result is that the graph stays at a reasonable width and doesn't\nneed to be compressed.\n\nMy reasoning is that it is the local short-range connections which are\ninteresting and informative.  The long-range connections aren't really\nvisually informative; if you want to know about the long-range\nconnections, the parent and child lists in the details pane are much\nmore useful.\n\nI would like to get some feedback about what people think of the\nvisual effect of this new approach, and in particular whether having\nthe lines jump into hyperspace loses information that people find\nuseful.  The new version is at:\n\nhttp://ozlabs.org/~paulus/gitk/gitk.hs\n\nIf the reaction is positive I'll check this into my gitk.git\nrepository.\n\nThanks,\nPaul.\n"},{"id":"7413","messageId":"Pine.LNX.4.58.0508162001040.3553@g5.osdl.org","threadId":"1543","inReplyTo":"17154.33520.584666.701545@cargo.ozlabs.ibm.com","subject":"Re: gitk with hyperspace support","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-08-17T03:02:56Z","receivedAt":"2005-08-17T03:02:56Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Wed, 17 Aug 2005, Paul Mackerras wrote:\n> \n> I would like to get some feedback about what people think of the\n> visual effect of this new approach, and in particular whether having\n> the lines jump into hyperspace loses information that people find\n> useful.\n\nMe likee. Maybe some knob to tune how eagerly this happens?\n\n> The new version is at:\n> \n> http://ozlabs.org/~paulus/gitk/gitk.hs\n\n\".hs\" made firefox think it was haskell. Confusing ;)\n\n\t\t\tLinus\n"},{"id":"7426","messageId":"7vr7ct124c.fsf@assigned-by-dhcp.cox.net","threadId":"1543","inReplyTo":"17154.33520.584666.701545@cargo.ozlabs.ibm.com","subject":"Re: gitk with hyperspace support","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-08-17T06:58:11Z","receivedAt":"2005-08-17T06:58:11Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Paul Mackerras <paulus@samba.org> writes:\n\n> My reasoning is that it is the local short-range connections which are\n> interesting and informative.  The long-range connections aren't really\n> visually informative; if you want to know about the long-range\n> connections, the parent and child lists in the details pane are much\n> more useful.\n\nCorrect.\n\nThe new output looks a lot less cluttering and I like it very\nmuch, but it is confusing to me on one count.  I clicked one\narrowhead pointing downward, expecting that the pane would jump\nscroll to show the counterpart arrowhead, and was dissapointed\nthat it did not happen.  I could click the \"Parent\" link at that\npoint, but then the upward arrow was above and outside the\nvisible portion of that pane, which broke visual continuity and\nI lost track at that point.  I think my being color challenged\nexacerbated the resulting confusion; otherwise I could have\nprobably found the line with the same color as the color of the\ndownarrow I clicked.\n\n> http://ozlabs.org/~paulus/gitk/gitk.hs\n\nI first thought you rewrote it in Haskell ;-).\n"},{"id":"7433","messageId":"60088.10.10.10.28.1124266400.squirrel@linux1","threadId":"1543","inReplyTo":"7vr7ct124c.fsf@assigned-by-dhcp.cox.net","subject":"Re: gitk with hyperspace support","fromName":"Sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2005-08-17T08:13:20Z","receivedAt":"2005-08-17T08:13:20Z","isPatch":false,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"On Wed, August 17, 2005 2:58 am, Junio C Hamano said:\n> Paul Mackerras <paulus@samba.org> writes:\n>\n>> My reasoning is that it is the local short-range connections which are\n>> interesting and informative.  The long-range connections aren't really\n>> visually informative; if you want to know about the long-range\n>> connections, the parent and child lists in the details pane are much\n>> more useful.\n>\n> Correct.\n>\n> The new output looks a lot less cluttering and I like it very\n> much, but it is confusing to me on one count.  I clicked one\n> arrowhead pointing downward, expecting that the pane would jump\n> scroll to show the counterpart arrowhead, and was dissapointed\n> that it did not happen.  I could click the \"Parent\" link at that\n> point, but then the upward arrow was above and outside the\n> visible portion of that pane, which broke visual continuity and\n> I lost track at that point.  I think my being color challenged\n> exacerbated the resulting confusion; otherwise I could have\n> probably found the line with the same color as the color of the\n> downarrow I clicked.\n\nThis change looks really good in gitk and clicking on an arrowhead to hop\nto the corresponding arrowhead would sure be great too.  There's may be a\nway to further reduce the line clutter too; once a line is terminated with\nan arrowhead, it could often be trimmed back much further.\n\nFor instance looking at Linus' tree:\n\n  03938c3f1062b0f279a0ef937a471d4db83702ed\n  powernow-k8 requires that a data structure for\n\nThe line flowing from this commit extends ~200 more commits downward\nbefore it is finally terminated with an arrowhead.   It would be nice if\nthis line could be made shorter, such that the arrowhead was drawn much\ncloser to commit in question.\n\nCheers,\nSean\n"},{"id":"7439","messageId":"17155.2581.888904.526537@cargo.ozlabs.ibm.com","threadId":"1543","inReplyTo":"7vr7ct124c.fsf@assigned-by-dhcp.cox.net","subject":"Re: gitk with hyperspace support","fromName":"Paul Mackerras","fromEmail":"paulus@samba.org","sentAt":"2005-08-17T09:57:41Z","receivedAt":"2005-08-17T09:57:41Z","isPatch":false,"sender":{"key":"paulus@samba.org","avatar":"https://avatars.githubusercontent.com/u/1606439?v=4"},"body":"Junio C Hamano writes:\n\n> The new output looks a lot less cluttering and I like it very\n> much, but it is confusing to me on one count.  I clicked one\n> arrowhead pointing downward, expecting that the pane would jump\n> scroll to show the counterpart arrowhead, and was dissapointed\n\nOK, you're the second person to ask for that, so I'll see what I can\ndo about it.  I can think of 3 possible behaviors when you click on\nthe arrowhead:\n\n1. scroll to bring the other arrowhead on-screen and briefly make it\n   larger or something similar to draw attention to it\n\n2. scroll to bring the other arrowhead on-screen and warp the pointer\n   to it\n\n3. select the next commit in the indicated direction which is a child\n   or parent that the line connects (scroll to make it visible,\n   highlight it, show its diff).\n\nWhich do you think would be best?\n\n> > http://ozlabs.org/~paulus/gitk/gitk.hs\n> \n> I first thought you rewrote it in Haskell ;-).\n\nHmmm, maybe it's apache on ozlabs.org that is under that\nmisapprehension?\n\nThanks,\nPaul.\n"},{"id":"7444","messageId":"pan.2005.08.17.14.37.30.131036@smurf.noris.de","threadId":"1543","inReplyTo":"17154.33520.584666.701545@cargo.ozlabs.ibm.com","subject":"Re: gitk with hyperspace support","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-08-17T14:37:33Z","receivedAt":"2005-08-17T14:37:33Z","isPatch":false,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Hi, Paul Mackerras wrote:\n\n> http://ozlabs.org/~paulus/gitk/gitk.hs\n> \nUnfortunately, this fails on my git-plus-assorted-crap archive:\n\ncan't read \"mainlinearrow(c1a9ddb1e9f30029384bd687d90af5796a280283)\": no such element in array\ncan't read \"mainlinearrow(c1a9ddb1e9f30029384bd687d90af5796a280283)\": no such element in array\n    while executing\n\"if {$mainlinearrow($id) ne \"none\"} {\n\t    set mainline($id) [trimdiagstart $mainline($id)]\n\t}\"\n    (procedure \"drawcommitline\" line 44)\n    invoked from within\n\"drawcommitline $dlevel\"\n    (procedure \"drawmore\" line 65)\n    invoked from within\n\"drawmore 1\"\n    (procedure \"drawcommit\" line 33)\n    invoked from within\n\"drawcommit $id\"\n    (procedure \"getcommitlines\" line 50)\n    invoked from within\n\"getcommitlines file23\"\n\n\nAnother problem: when I click on a line, I get the parent and *all* its\nchildren, not just the child(ren) on the other end of the segment I was\nclicking on.\n\n-- \nMatthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de\nDisclaimer: The quote was selected randomly. Really. | http://smurf.noris.de\n - -\nThere are some micro-organisms that exhibit characteristics of both plants\nand animals.  When exposed to light they undergo photosynthesis; and when\nthe lights go out, they turn into animals.  But then again, don't we all?\n"},{"id":"7447","messageId":"pan.2005.08.17.15.56.37.841163@smurf.noris.de","threadId":"1543","inReplyTo":"60088.10.10.10.28.1124266400.squirrel@linux1","subject":"Re: gitk with hyperspace support","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-08-17T15:56:38Z","receivedAt":"2005-08-17T15:56:38Z","isPatch":false,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Hi, Sean wrote:\n\n> The line flowing from this commit extends ~200 more commits downward\n> before it is finally terminated with an arrowhead.   It would be nice if\n> this line could be made shorter, such that the arrowhead was drawn much\n> closer to commit in question.\n\nGood point. The arrowheads tend to get lost otherwise; in my tree, the\nproblem is even worse since the downward-pointing arrow (drawn in grey) is\ndirectly below a horizontal line connecting two unrelated changes -- which\nis *also* grey.  That makes the actual arrowhead perceptually invisible.\n\nIf the arrow appears directly below a node, you don't get that problem.\n\nAnother point I just noticed: The arrows should be directly below\neach other, if at all possible; i.e. the one pointing up should be in the\nsame column as the corresponding arrow pointing down.\n\n-- \nMatthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de\nDisclaimer: The quote was selected randomly. Really. | http://smurf.noris.de\n - -\nMoney is the root of all evil, and man needs roots.\n"},{"id":"7480","messageId":"7v4q9oqjjv.fsf@assigned-by-dhcp.cox.net","threadId":"1543","inReplyTo":"17155.2581.888904.526537@cargo.ozlabs.ibm.com","subject":"Re: gitk with hyperspace support","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-08-17T22:34:44Z","receivedAt":"2005-08-17T22:34:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Paul Mackerras <paulus@samba.org> writes:\n\n> OK, you're the second person to ask for that, so I'll see what I can\n> do about it.  I can think of 3 possible behaviors when you click on\n> the arrowhead:\n>\n> 1. scroll to bring the other arrowhead on-screen and briefly make it\n>    larger or something similar to draw attention to it\n>\n> 2. scroll to bring the other arrowhead on-screen and warp the pointer\n>    to it\n>\n> 3. select the next commit in the indicated direction which is a child\n>    or parent that the line connects (scroll to make it visible,\n>    highlight it, show its diff).\n>\n> Which do you think would be best?\n\nHmph.  I think, aside from being color challenged, the primary\nsource of confusion for me was that the lines with arrowheads\nwere too long, and the node and the arrowhead did not fit within\nthe height of the graphical pane, at least with my window\nconfiguration.\n\nI wonder if not having downward or upward arrows for a long\nstretch would work better.  Lose the vertical line for such\nhyperspace links, and instead have a horizonal short line with\narrowheads to denote that there are also hyperspace lines coming\ninto or out of that node.  That way you can save one column for\na vertical line, and my preference for clicking on such an\narrowhead would be #3 from the above.\n"},{"id":"7935","messageId":"17171.47747.10616.537936@cargo.ozlabs.ibm.com","threadId":"1543","inReplyTo":"7vr7ct124c.fsf@assigned-by-dhcp.cox.net","subject":"Re: gitk with hyperspace support","fromName":"Paul Mackerras","fromEmail":"paulus@samba.org","sentAt":"2005-08-30T01:46:43Z","receivedAt":"2005-08-30T01:46:43Z","isPatch":false,"sender":{"key":"paulus@samba.org","avatar":"https://avatars.githubusercontent.com/u/1606439?v=4"},"body":"Junio C Hamano writes:\n\n> The new output looks a lot less cluttering and I like it very\n> much, but it is confusing to me on one count.  I clicked one\n> arrowhead pointing downward, expecting that the pane would jump\n> scroll to show the counterpart arrowhead, and was dissapointed\n> that it did not happen.\n\nTry now... :)\n\nIt also makes the current graph line thicker now, so it's easier to\npick out where the line you clicked on goes.\n\nPaul.\n"},{"id":"7946","messageId":"7v8xyj279k.fsf@assigned-by-dhcp.cox.net","threadId":"1543","inReplyTo":"17171.47747.10616.537936@cargo.ozlabs.ibm.com","subject":"Re: gitk with hyperspace support","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-08-30T07:50:15Z","receivedAt":"2005-08-30T07:50:15Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Paul Mackerras <paulus@samba.org> writes:\n\n> It also makes the current graph line thicker now, so it's easier to\n> pick out where the line you clicked on goes.\n\nVery nice, and quite helpful for colour challenged ones.\nThanks.\n"},{"id":"7995","messageId":"81b0412b0509011310386ee9a1@mail.gmail.com","threadId":"1543","inReplyTo":"17171.47747.10616.537936@cargo.ozlabs.ibm.com","subject":"Re: gitk with hyperspace support","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2005-09-01T20:10:51Z","receivedAt":"2005-09-01T20:10:51Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On 8/30/05, Paul Mackerras <paulus@samba.org> wrote:\n> \n> Try now... :)\n> \n> It also makes the current graph line thicker now, so it's easier to\n> pick out where the line you clicked on goes.\n> \n\nThat's a fine feature :)\n\nBTW, did you sometimes notice lines you can't click at all?\nAn example is the red line on the most left side of the graph\nby SHA 66129f88c4cc719591f687e5c8c764fe9d3e437a.\nIt goes from blue up-arrow  through green left bump to the grey\ndown-arrow (on my system in the kernel tree). Clicking on the blue\narrow (on the line, not the arrow itself) will turn the blue line stricken-\nthrough with the red line (a bold blue line with a red streak inside),\nthe next click leaves me with with just bold blue line and broken\nred line above it.\n\nIt's on Gentoo's Tcl/Tk 8.4.9.\n"},{"id":"7996","messageId":"51773.10.10.10.10.1125609974.squirrel@linux1","threadId":"1543","inReplyTo":"81b0412b0509011310386ee9a1@mail.gmail.com","subject":"Re: gitk with hyperspace support","fromName":"Sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2005-09-01T21:26:14Z","receivedAt":"2005-09-01T21:26:14Z","isPatch":false,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"On Thu, September 1, 2005 4:10 pm, Alex Riesen said:\n\n> That's a fine feature :)\n>\n> BTW, did you sometimes notice lines you can't click at all?\n> An example is the red line on the most left side of the graph\n> by SHA 66129f88c4cc719591f687e5c8c764fe9d3e437a.\n> It goes from blue up-arrow  through green left bump to the grey\n> down-arrow (on my system in the kernel tree). Clicking on the blue\n> arrow (on the line, not the arrow itself) will turn the blue line\n> stricken-\n> through with the red line (a bold blue line with a red streak inside),\n> the next click leaves me with with just bold blue line and broken\n> red line above it.\n\nFor what it's worth, everything near that SHA1 works here as expected.  \nAlthough I wasn't able to follow what you meant by \"blue up-arrow through\ngreen left bump...\" etc.   But all the lines respond to being clicked and\nall the arrow heads in that area properly jump to their corresponding\ncommit.\n\nThat's with the latest checked out version of git and tcl/tk 8.4.9 as well.\n\nSean\n"},{"id":"8019","messageId":"81b0412b0509020620559ab811@mail.gmail.com","threadId":"1543","inReplyTo":"51773.10.10.10.10.1125609974.squirrel@linux1","subject":"Re: gitk with hyperspace support","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2005-09-02T13:20:00Z","receivedAt":"2005-09-02T13:20:00Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On 9/1/05, Sean <seanlkml@sympatico.ca> wrote:\n> > BTW, did you sometimes notice lines you can't click at all?\n> > An example is the red line on the most left side of the graph\n> > by SHA 66129f88c4cc719591f687e5c8c764fe9d3e437a.\n> For what it's worth, everything near that SHA1 works here as expected.\n> Although I wasn't able to follow what you meant by \"blue up-arrow through\n> green left bump...\" etc.   But all the lines respond to being clicked and\n> all the arrow heads in that area properly jump to their corresponding\n> commit.\n> \n> That's with the latest checked out version of git and tcl/tk 8.4.9 as well.\n\nI just tested it on another system (8.4.6, Slackware 10+), and it works\ncorrectly too. Probably it is Gentoo's (or mine, you never know in Gentoo)\nTcl/Tk, which is broken somewhere.\n"}]}