Introduction - Steve's Tutorial on Jujutsu, an alternative front-end to git
Introduction - Steve's Tutorial on Jujutsu, an alternative front-end to git
Introduction - Steve's Jujutsu Tutorial
Jujutsu is essentially an alternative front-end or "porcelain" to git, both magnificiently simplified and powerful.
I tried it after using Emacs Magit for about six or seven years, and jujutsu is really easier to use than git and useful if one wants a tidy public history of changes (with "tidy" and "public" as Linus Torvalds recommends). Plus it is fully compatible to git as backend - other contributors will not even note you are using it.
Hrm... It looks interesting but it seems too dedicated to crafting "the perfect commit".
I don't want to "evolve a commit" - I want to capture my changes over time. If I decide later that I want to prepare the commit for merging I will.
I hate it because it's different - but even trying to give it a "benefit of the doubt" I really can't see this as better. It's not like it's difficult to create a "tidy" commit with git as is.
And as far as "easier to use goes"... well... Here's how you get a list of anonymous branches
And since they eschew branches with names you get to memorize hash strings instead of branch names that describe the thing you were doing?
I'm unconvinced. Though
jj undo
looks neat (and also crazy dangerous unless you can undo an undo?).No trouble, you can still name branches if you want. And no, you don't have to type the whole changeset hash, the first one to three letters are usually sufficient.
Also, branch names are not a permanent thing, they disappear after you merged them.
If you want, to can put an empty commit with the description of what you want to do at the top of your changes, and then use "jj split" to move changes to different commits before it. There are several common work flows which are explained in Klabnik's blog post.
Yeah you can undo undo and also resurrect undone states.
If the readability of the commit history really does not matter to you - for exsmple, nobody needs to read this code again - it's possible that jj does not give you enough advantage. Everyone works different.
I mean... It does and I will use git to manage commit histories as necessary. I don't see
jj
as solving that problem or even making it easier. Doing a single squash-commit or arebase -i
when I merge a branch is relatively trivial.And from what I can tell it's much easier to do a
git pull upstream master
than to dojj new skdfsld dskfjas
since you'll likely have to lookup those hashes? I mean I wouldn't remember them.