Things that could be better for GUIs

Ronny Pfannschmidt Ronny.Pfannschmidt at gmx.de
Sat Feb 28 13:36:41 CST 2009


Here is a short list of things that make ui's hard from my point of
view.

* mercurial.commands it completely tailored towards cli usage
  
  * invocation is dominated by unpacking the args/kwargs 
    that where gained from the cmdline parsing
  * weird required keyword arguments 

    * please assume some sane defaults when possible

  * sometimes they even contain some logic 
    thats probably hard to replicate
    (i never could make sense out of commit)
  * some lack practical return values
    (ie commit node id for commit)

* lack of a progress reporting tool
  
  * what steps, do happen for a task
  * which one are we currently processing
  * how does it transit states
    for example push is
    
      * compare heads
      * find csets
      * find conflict
      * bundle
      * upload

    (note that this one may be too complicated to make sense,
    it was just in the back off my head like that
    please trim the idea down as you see fit)

    
* ui is mainly a printing/config tool
  
  * need a way to keep debug, status, error, other messages apart
    (this sounds like logging, but logging from the stdlib sucks) 


* workdir status reporting seems messy
  
  * repo.status lacks renames
  * iterating the workingfilectx's seems a nasty extra step
    
    * there should be a more nice way


* things i couldn't yet mess with

  * merging
  * mq/attic/rebase
  * history graphs (probably the only one that will be unproblematic)


* things that will be very nasty in any case

  * types of branches

    * dirs
    * bookmarks
    * named
    * bzr style?
      * my task
      * should probably work like dir 


Regards Ronny



More information about the Mercurial-devel mailing list