

Build Your Own Git UI for Mac with GitUpKit - swisspol
https://github.com/git-up/GitUp#gitupkit

======
swisspol
I'll be writing a few more sample code in the coming days but you can already
see how simple the API is: [https://github.com/git-
up/GitUp/blob/master/GitDown/AppDeleg...](https://github.com/git-
up/GitUp/blob/master/GitDown/AppDelegate.m).

GitUpKit is a multi-level API design so you can just use exactly what you need
from each level depending on how much control you need (e.g. you can use a raw
diff rendering view or a ready-to-use full-featured diff view).

Happy to answer questions if any or just visit
[http://forums.gitup.co/](http://forums.gitup.co/) where the GitUp community
lives.

~~~
biehl
Lovely. My first question as a noob-not-even-osx-developer-yet is why not
Swift? (my impression is that it is a quite recent project).

~~~
swisspol
Swift is still very young, constantly evolving, and simply not ready for big
projects. Case in point: is there a single Apple app written in Swift yet?

This means that writing GitUp in Swift would be a ton of overhead for very
little tangible benefit.

See examples of what well known Mac developers have to go through with Swift:
[http://inessential.com/swiftdiary](http://inessential.com/swiftdiary). I'd
rather spend my time on building the app rather than on dealing with Swift.

------
zatkin
>[http://gitup.co/images/speed.png](http://gitup.co/images/speed.png)

I hope no-one here ever has to deal with a tree like this.

~~~
tenfingers
In my mind the default git log graph (and most other git UIs) are very poor at
rendering the graph itself.

Somehow, even a moderately simple repository which has been heavily co-
authored will look like garbage; even though there _are_ two distinct
mainlines that you can follow.

One of the best visualizations for revision control, IMHO, is fossil's
timeline view:

[https://www.fossil-scm.org/index.html/timeline?y=ci](https://www.fossil-
scm.org/index.html/timeline?y=ci)

It's clear, compact, and tries to maintain different lineages as straight
lines. git tools, by contrast, just shift everything on right.

Not even github's network view is really usable, since the network
simplification they perform destroys the locality of the changes.

~~~
jlarocco
I'm a little embarrassed to say I had never heard of Fossil.

At first I didn't like the idea of including a web interface and wiki, but the
more I thought about it, the more I liked it. Having a change log for the wiki
would be helpful, and I'm assuming it's zero cost if you don't use it.

Including an integrated bug tracking seems like an ingenious idea, though. Any
idea how well it works out on real projects?

~~~
tenfingers
I cannot comment too much myself, since I only tried it for smaller projects,
and nowhere near the amount I gave to hg/git/svn/and others.

That being said, it's not any different from hg/git in terms of cooperation,
and more similar to hg in the sense that history is irreversible by default.

But the UI (cli and web) is very well designed. There's nothing to dislike,
really. I couldn't care too much about the wiki (IMHO, a better solution is
use md documents directly in the source), but the issue tracker solves
distributed bug tracking in a very elegant way. Contrast to git/hg, where you
have to use third-party or centralized bug tracking with poor integration.

Fossil is used by the sqlite project (and several other hidden gems).

I still find unbelivable that fossil has such a well-designed commit graph and
interface, and git (with so many eyeballs looking into it) has nothing similar
(and I _do_ know "git show-branch").

------
pjmlp
Congratulations, nice to see native clients being done, specially after
discovering that GitHub is hosting a browser on their client.

~~~
swisspol
Thanks!

------
squeral
Any thoughts on a ubuntu release?

~~~
swisspol
GitUp is 30,000 lines of first-party code in Obj-C, mostly built around the OS
X SDK. It's simply not portable to other platforms. It would have to be a
rewrite which is not going to happen :)

