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/