Hacker News new | past | comments | ask | show | jobs | submit login

This article begs the question - what might a sane/consistent UI on top of git look like?



Last year, I started work on an attempt to basically create a Bzr-like [1] porcelain. I still think this would be the way to go for a serious attempt to provide a consistent, but reasonably powerful UI for Git (especially given that Bzr and Git actually have a fair amount of commonalities under the hood).

I recently gave up for a number of reasons, though:

(1) It turned out to be hugely more complex than I had initially thought.

(2) There would have been the need to store additional meta-data in the Git repository. Combined with the need to intercept a lot of basic Git commands, that would have largely relegated Git to a transactional key/value store, which would have destroyed much of the purpose (interoperability with the Git eco system).

(3) Mercurial 3.2 introduced to bookmark management that emulated the behavior of Git branches better, which (in conjunction with hg-git) made it a viable frontend for Git, and it was in the end easier to fix my remaining issues with Mercurial via extensions than to fix my issues with Git via porcelain.

That said, I think the approach is still viable and in principle a good one, especially if you give up on some Bzr's features that yield relatively little for the amount of work involved (such as putting empty directories under version control).

[1] Bzr suffers primarily from abandonment issues, its basic design and UI (modulo some needed clean-up) is pretty good, especially the model it exposes to users.




Yep. SourceTree with BeyondCompare hooked up works rather well, been using it for a couple years now.


I was thinking a bit about this the other day. I think that it would probably be geared around the way that Git is actually used.

The thing about DVCS is that it's allowed a whole lot of experimentation around different workflows, and two in particular have come to the forefront in particular: pull requests and git-flow. A porcelain designed around these particular workflows would be quite effective IMO.

Also, I think it would have some better, less jargonistic terminology. For example, something like TFS's "get-latest" as an alias for "git pull origin master" would be a lot clearer.


hgit seems like such a proof of concept: a mercurial UI over a git store:

https://bitbucket.org/durin42/hgit


I'm surprised a facade hasn't emerged yet. Personally I think it's nigh impossible to sanely do merges with a GUI. I know people do, but I think they're crazy. Using git via any JetBrains IDE is the best I've seen.


I'm confused. Isn't the JetBrains IDE a gui? How can it be the best you've ever seen and impossible to sanely do merges?

FWIW, I've only ever done git merges in a gui, and never had any difficulty with it.


He might mean that he uses Jetbrains' IDEs with git for nearly everything, but feels that using it to merge things is madness.

It seems strange, but I really like having a console-based workflow with my VCS. I can leverage grep, shell aliases, and so on to customize my interface a fair deal, and the forced interaction helps keep me mindful of what I am doing.


Typo. I meant it's impossible to do without a GUI


I agree - I don't think it's possible to put a sound visual representation over the top of git, it's too abstract. A coherent command line interface should be possible, though.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: