[darcs-users] Patches dependency discovery

Leif Frenzel himself at leiffrenzel.de
Fri Jul 8 14:27:55 UTC 2005


>>Still it is good to have a tree that reflects dependencies. It gives the 
>>user a quick overview of what he would have to select in order to get a 
>>particular patch. But having the leaves as root elements would mean that 
>>the user would have to expand all the tree to find patches that precede 
>>the others.
> 
> 
> That's why I'm suggesting putting all patches at the root. So your
> example above would become:
> 
> A
> 
> B - A
> 
> C - B - A
>   |
>   - D - A
> 
> D - A
> 
> That is, I imagine the typical use case to be 'I want to pull patch X,
> and need to know which other patches I have to pull as well'. 
That may be the typical case for push, where I know which patches are in 
the list in advance (because I have recorded them). For pull, I get a 
list from the repo, and I don't think it is the typical case that I 
already know that list and know which of the patches in the list I want 
to pull.

 >That is
> made very easy using the arrangement above, since X can always be
> found at the top level, and the dependencies of X are all its
> children. I don't see the list of patches that depend on X as being
> terribly useful information.
It may be useful not to see them, though, or more precisely: only see 
them if I like. Getting a list of all patches, which may be long, forces 
me to scan them and possibly to scroll the dialog (or whatever window 
they are on); if they are in a tree below the root node, I have to 
expand them only if the root node seems acceptable or interesting to me.

Only in the case when I have a special patch in mind or want to 
cherry-pick from the list I want a different view. For this I could 
switch to flat view (or we could have a filter like in the Eclipse 3.1 
preferences dialog).

> By contrast, using the arrangement you show, I need to already know at
> least one of C's immediate dependencies in order to actually find C.
> 
> That's true for pulling at least. For unpull, the situation reverses,
> so probably in the long term both views should be available (but
> again, all patches should appear at the root, and no automatic
> ticking, please).
Can't see how to avoid it. If not for ticking, then for un-ticking. For 
instance if we have A > B. Initially, A and B are unchecked and B is 
disabled. Check A, so B gets enabled. Now check B. We have two 
possibilities: either we disable A (in checked state) or we don't. If 
the latter, the user can uncheck A, which would force us to uncheck B 
automatically. I the former, that's no good, for now I can get into the 
situation that there is a checked disabled patch that I would like to 
uncheck, but first have to figure out which others I must uncheck 
elsewhere to get it enabled again. In the simple case, that's only B. In 
the example above, suppose C is checked and disabled, because all it's 
dependencies are checked. Now you have manually to go through the entire 
dependency tree below C and locate A, B, and D in the list at the top 
level and uncheck them. And that's bad too.

Apart from that, some people like it if the number of clicks they have 
to do is reduced. If I select something that has dependencies, there is 
nothing I really can decide about these. I just have to select them, and 
that can be done automatically as well as manually. And this is a common 
UI paradigm. It's everywhere in the Eclipse export wizards, where you 
want a file to be exported, all parent folders are selected 
automatically. This is not an exact parallel, of course, because of the 
multiple parents that we have in our case, but apart from that special 
problem, it's perfectly common UI behaviour.

> Regarding GEF: if you try the script I wrote, you'll see that Graphviz
> (which AFAIK is considered best-in-class for open-source software
> which does this) does a pretty mediocre job of laying out the graph,
> and scales poorly to large graphs. So, don't expect miracles if you
> actually try to show the complete graph. Some sort of simplified view
> is probably inevitable.
Yes, I agree. I'd prefer a list or tree with checkbox items over a 
special graphical drawing.

Ciao,
Leif

> 
> -- Jamie Webb
> 
> _______________________________________________
> darcs-users mailing list
> darcs-users at darcs.net
> http://www.abridgegame.org/mailman/listinfo/darcs-users
> 
> 





More information about the darcs-users mailing list