I’m proud to announce the first stable release of gg, my alternative
Git command-line interface! This has been a release over two years in the
making: I’ve battle-tested gg across many different workflows and projects.
It’s saved me tons of time every day, and I hope it can save time for others
too. Download the latest release and try it out for yourself!
It’s always interesting to me to compare different approaches to solving the
same problem. Git and Mercurial are two version control systems that came out
at similar times, trying to address very similar requirements. Git came from
a very low-level systems perspective, whereas Mercurial spent a lot of effort
on its user experience. Despite what you might think, their data models are
remarkably similar. It’s from this observation I started my side project —
gg. I found myself greatly missing the experience of Mercurial, but I’ve
resigned myself to the fact that Git is here to stay.
I came across a rather interesting challenge today while working on gg. I am
trying to replicate the behavior of hg pull, and even though I’ve worked on gg
for over a year now, I still haven’t reached a behavior that I’m satisfied with.
I’ve finally realized why, and it boils down to a very subtle difference in the
data models of the two systems.