On Mar 9, 2010, at 3:09 AM, Faisal N Jawdat wrote:

> - A lot of people have work on GitHub (Nathan Kinsinger, Morgan
> Schweers: I'm looking at you). How much of that work is ready to be
> integrated? Is it mostly a matter of someone stepping up to start
> accepting and dealing with pull requests?


Several months ago I asked Pieter about including the changes that are in my 
fork. I asked him directly and not through this list which is my fault, sorry.

Based on his input these are the main things I've been working on:

        -10.5 support
                Pieter says that half of the user base is still using 10.5 so I 
removed the 10.6 only stuff. There are a few features that are in my current 
github fork that I have not had time to redo (i.e. QuickLook), but I plan to 
get to these later.

        - clean up the UI
                In my fork I used pull down menus for the toolbar items because 
I wanted to be able to select branches for the various operations and they were 
easy to add without getting too deep in the gitx source. Since then I've gotten 
rid of the menus, moved the UI around and put many of the buttons inside the 
history view or other places where they make sense.
                I've also created better sheets for various operations and 
there is a progress sheet for Fetch, Pull and Push. As well as a bunch of other 
smaller tweaks here and there.

        - sidebar/source view
                Cleaned up Pieter's sidebar branch and added other features to 
support the change in the UI interaction it causes.
                Part of this is removing the All Branches and Local Branches as 
individual branch views and instead I've made them filters in a scope bar. The 
options are All, Local/Remote, and selected branch. When in All branches 
selecting a branch in the source view will scroll to that commit in the history 
list instead of putting you at the most recent commit. This saves a lot of 
scrolling :)

        - performance
                Because it is now possible to switch branches quickly I have 
spent a lot of time trying to remove any extra updating of information and 
views. Also Pieter mentioned that there are people with +100k commit repos so 
I'm trying to cache some information and reuse it rather than reload/parse from 
git every time. The largest public repo I've found is WebKit with 46k commits 
and that is what I've been testing with. It's not instantaneous by any means 
(there is only so much I can do with that many objects in an NSArrayController) 
but it's better than when I started. I briefly looked at adding Dave Grijalva's 
fsevents work but it causes too many updates, I have some idea's about reducing 
them but haven't had to time to work on it.

In addition to the above I've added a number of little features that I wanted 
as I've been going along.

The branch filter and the performance stuff is what has been taking me so long 
(I started this in January). I have whittled it down to two bugs, one of which 
causes commits and refs to not be updated when they should so the history view 
shows wrong/outdated info. Since the history view is one the core things that 
gitx does I feel I need to fix it before I push it up. Trying to follow the 
rule: don't break existing functionality.

After that I need to clean up some commits (Pieter said he doesn't like how 
messy my existing fork is, and he's right). I *think* one more good weekend 
should do it, assuming life/work doesn't interfere ;)


--Nathan

http://brotherbard.com/


Reply via email to