HaraldvonBlauzahn

joined 3 months ago
[–] HaraldvonBlauzahn@feddit.org 1 points 24 minutes ago* (last edited 7 minutes ago)

YMMV but I've found it much easier to manage complex workflows with jj compared

It is no secret that git's interface is a bit too complex - even XKCD has made fun of it.

But what is amusing is that people now have a kind of Stockholm Syndrome, and plain refuse to believe there could be something better.

(Perhaps motivated by the long list of half-assed helper interfaces and GUIs which just were hapless trying to hide the sprawling complexity).

[–] HaraldvonBlauzahn@feddit.org 1 points 30 minutes ago* (last edited 14 minutes ago)

I look forward to read your beautiful, thoughtful, well-commented commit history. No more "Merge branch 'asdfasjkfdlas/alkdjf' into sdkjfls-final" ;-) .

[–] HaraldvonBlauzahn@feddit.org 1 points 39 minutes ago* (last edited 18 minutes ago)
  • jj is overeager about adding stuff to ðe repos; it's by design.

One just needs to learn how to un-track stuff, by adding the missing .gitignore entry, issuing the "jj file untrack" ..." command, and removing the file.

The big advantage is the simplification which becomes possible by this: no staging area, no git add, no stash save, stash pop, stash apply, and so on. No git amend, fixups, reset soft/hard/ mixed,...

And the overall complexity saving of jujutsu is enormous: two of the man pages on the more complex git commands are already larger and more complicated than all of the jujutsu command line reference (link)- which is pretty complete! And Steve Klabnik's jujutsu tutorial is about a tenth of the length of Beejs brilliant Guide on git. And with Klabnik's Introduction, you can already do more (for example complex rebase operations, like rebasing multiple branches at once).

[–] HaraldvonBlauzahn@feddit.org 1 points 52 minutes ago* (last edited 4 minutes ago)

But, did you try it? Myself, I was comfortable with working with it after one hour or two - after working with git for 18 or 19 years, and often being the first git user in my organization.

The entire point of branches is to have a name that has meaning to me that I can use to refer to work I'm doing.

You already have a name for every change/commit: The first line of the commit message, which you can write when you start work on it.

Branch names in git are temporary: When a branch is merged, its name disappaers.

[–] HaraldvonBlauzahn@feddit.org 0 points 2 hours ago* (last edited 4 minutes ago)

This is... unforgivably obnoxious.

Well, if you really don't like it after giving it consideration - use git. Nobody forces you to use jujutsu.

[–] HaraldvonBlauzahn@feddit.org 2 points 3 hours ago

Yeah. It can be used e.g. instead of command-line git commands, or also be intermixed with them. Pushing a branch to a git server works as normal "git push" (needed in older versions with complex vpn/ssh configurations).

Has also still limitations remaining - no git submodule support. But it has work trees.

[–] HaraldvonBlauzahn@feddit.org 2 points 6 hours ago* (last edited 5 hours ago) (7 children)

The mental model is fascinatingly simple. It is: You have a directed acyclical graph (DAG) of "changes", which are often drawn like this.. Then, you have a small set of commands that operate on that graph, e.g. adding changes, fusing two into one or splitting up one into two, adding nodes that have more than one parents, rebasing single nodes or a series of changes. And changing the content of these nodes in the commit graph is almost always done with the normal source code editor - everything one saves becomes already part of the graph when the next jj command is run.

Jujutsu does not use branches much because you are focused on the nodes in the commit graph. And instead of giving every of them manually a name, they are identified with change IDs. Branches are called "bookmarks", they can be attached to a commit graph node, and are used mostly for collaboration.

And when you push that graph of mutable changes to remote, they become a graph of normal commits that should not be changed under normal circumstances (because they are shared history now).

[–] HaraldvonBlauzahn@feddit.org 2 points 6 hours ago (1 children)

I was surprised by that sentence, too.

But I see from my AI-using coworkers that there are different values in use for "it works".

 

“Jujutsu (jj) is a version control system with a significantly simplified mental model and command-line interface compared to Git, without sacrificing expressibility or power (in fact, you could argue Jujutsu is more powerful). Stacked-diff workflows, seamless rebases, and ephemeral revisions are all natural with jj [...]”

Part 2 of the series is out and is here.

[–] HaraldvonBlauzahn@feddit.org 7 points 8 hours ago

There are a few aspects that LLMs are just not capable of, and one of them is understanding and observing implicit invariants.

(That's getting to be funny if the tech is used for a while on larger, complex, multi-threaded C++ code bases. Given that C++ appears already less popular with more experienced people than with juniors, I am very doubtful whether C++ will survive that clash.)

[–] HaraldvonBlauzahn@feddit.org 18 points 8 hours ago (1 children)

Well, if your country is more progressive than the vatican, why isn't it carbon-neutral already?

The problem is not that it is difficult to phase out carbon, the problem is capitalistic greed that corrupts leadership of our entire civilization.

 

Well, I hope you don't have any important, sensitive personal information in the cloud?

[–] HaraldvonBlauzahn@feddit.org 4 points 9 hours ago

At which point will we start to treat the destruction of our climate and our planet as violence?

 

Sounds a bit bizarre, but hey, so are the times we live in....

 

cross-posted from: https://scribe.disroot.org/post/3819931

Helsinki has not recorded a single traffic fatality in the past 12 months, city and police officials confirmed this week.

The city's most recent fatal accident occurred in early July 2024 on Keinulaudantie in the city's Kontula district.

Authorities are calling the situation exceptional.

"A lot of factors contributed to this, but speed limits are one of the most important," said Roni Utriainen, a traffic engineer with the city's Urban Environment Division.

...

According to Utriainen, more than half of Helsinki's streets now have a speed limit of 30 km/h. Fifty years ago, that proportion featured 50 km/h limits.

Earlier this summer, Helsinki decided to lower speed limits near schools to 30 km/h, a measure that is set to take effect as the academic year begins.

...

 

Archive link: https://archive.ph/A7LI4

Marianne Belotti has worked at large institutions with modernizing decades-old code bases. She is author of the book "Kill it with Fire" [review].

From that book's author bio:

Marianne Bellotti has worked as a software engineer for over 15 years. She built data infrastructure for the United Nations to help humanitarian organizations share crisis data worldwide and tackled some of the oldest and most complicated computer systems in the world as part of United States Digital Service. At Auth0 she ran Platform Services, a portfolio that included shared services, untrusted code execution, and developer tools. Currently she runs Identity and Access Control at Rebellion Defense. She can be found on most social networks under the handle bellmar.

 

Ich sehe es schon kommen, wir müssen die Löhne senken und die Boni erhöhen. Schliesslich braucht man in so einer Situation vorausschauende und kompetente Manager!!

 

cross-posted from: https://feddit.org/post/16116378

One aspect of Guix I found to be really fascinating: That there is basically no conceptual difference between defining a package as a private build script, and using a package as part of the system.

Let me explain: Say you wrote a little program in Python which uses a C library (or a Rust library with C ABI) which is in the distribution. Then, in Guix you would put that librarie's name and needed version into a manifest.scm file which lists your dependency, and makes it available if you run guix shell in that folder. It does not matter whether you run the full Guix System, or just use Guix as s package manager.

Now, if you want to install your little python program as part of your system, you'll write an install script or package definition, which is nothing else than a litle piece of Scheme code which contains the name of your program, your dependency, and the information needed to call python's build tool.

The point I am making is now that the only thing which is different between your local package and a distributed package in Guix is that distributed packages are package definitions hosted in public git repos, called 'channels'. So, if you put your package's source into a github or codeberg repo, and the package definition into another repo, you now have published a package which is a part of Guix (in your own channel). Anybody who wants to install and run your package just needs your channel's URL and the packages name. It is a fully decentral system.

In short, in Guix you have built-in something like Arch's AUR, just in a much more elegant and clean manner - and in a fully decentralized way.

view more: next ›