Hacker Timesnew | past | comments | ask | show | jobs | submit | WolfeReader's commentslogin

1. Ease of use. Other VCS have more consistent command line interfaces; Git's interface has to be studied. In practice, people end up using GUIs with missing functionality and then end up searching for help, and a lot of real experts come to rely on powerful wrappers like Magit, LazyGit, or JJ.

(Compare to Mercurial, Fossil or Git; those systems have consistent and usable interfaces. There's much less demand for wrappers or LLM tooling since they're easy to use already.)

2. Preservation of history. Two common commands - git rebate and git push -f - cause commit history to be lost, sometimes permanently. ("Just be careful" and "Just don't use those commands" are useful pieces of advice for an individual, and virtually impossible to enforce over groups.)

3. Conflict resolution. Git forces the user to resolve conflicts ASAP so we often lose information about A. What the conflict exactly was, and B. How the individual resolved it. Most VCS have this issue; JJ allows you to commit the conflict and solve it in a separate commit, which is nice.


1. Usually people have no mental model about versioning other than “draft-1, draft-final, final, final2, final-final,…’. Because they don’t care about requirements and design decisions documentation, auditing changes, and release management. Git provides a set of tools for solving those. Wrappers are for when you have your own workflow for those needs and have a good understanding of git.

2. https://git-scm.com/docs/git-reflog

It’s very hard to loose data in git.

3. The goal of writing code is to have working software. Conflict messages are like compiler warnings, better have them than getting errors slipping by unnoticed. If A conflict with B, the root cause is often a design conflict, which means that the design of the software is inconsistent.

The conflict only matters as long as it’s not been solved. For each commit, the design of the software need to be consistent, and the succession of commit describe the evolution of the design. A is not lost, B is not lost in the case of a merge and may stay for a long time when rebasing. C which solves the difference between A and B (and may replace B) is also consistent. I don’t care about inconsistency.


"I wish commits could be folded into larger commits so that you can still capture the individual changes but also not see them by default when looking at the history of a file."

Fossil merges do this. More people need to use Fossil; it's got a ton of great ideas.

"If I split a file in two I still want to be able to see blame correctly for the author of the function, not one file as freshly created and the other with a bunch of deletes."

Now this is a good idea that I've never seen in a VCS.


> "If I split a file in two I still want to be able to see blame correctly for the author of the function, not one file as freshly created and the other with a bunch of deletes." > > Now this is a good idea that I've never seen in a VCS.

There's a reason no one has done that, the VCS would have to have a semantic understanding of what it's tracking. I'm sure that's possible, but I think would see extremely limited success. Honestly, it may have even been done for proprietary languages and VCS systems that have since faded into obscurity.

I'd settle for searching the git history for a particular regex/string and then running a blame on that.


1) An “easy” way to implement this would be to treat the original file as the parent to both files. You can add a new command “split” if needed to mark the new file as a fork of the existing file.

2) language sensitive version control seems like the next thing. We need like an LSP for VCSes.


The other way is to make the tool UX do the semantic, ie:

`git split`

Something that I enjoy with jujutsu is that the semantics is the tool itself. ONCE you do that, the rest become easier!


git actually does this. `git diff --find-copies`

If I run blame on the new file the will I see the commits made by the original writers? Will it find the same code if it was written independently? It’s not about find copies it about recording changes to a code base as an artifact and not to files. The closest git has is limited rename support.

Yes, if you run `git blame -C`.

I legit did not know this. Thanks!

Unfortunately, these days, "Show HN" is a code phrase for vibe-coded and untested projects. I was optimistic for this one because I love puzzles.

The "Hard" big diamond nonogram was not hard at all. Are you vibe-coding these?

The AI generated nonograms are actually better. I made the diamond myself sadly. They do get harder as you progress through them. I'm not good at pixel art, so I started with simple things like diamond and heart, but you're not the first to mention it, so I should've probably left those out.

We are in "the future" relative to both works. The current intelligence threatening our planet is an unconscious token predictor, much more like the hostile non-entity in Blindsight (which even speaks to humans via token prediction) than the mechanical persons in Terminator 2.

Near as I can tell, the LLMs aren’t the threat. Just greedy morons with too much power, same as usual.

Good point. If only the evil we must fight was as simple as Skynet. Reality is much sadder since people are hurting people.

Every Kobo reader is capable of running KoReader ( http://koreader.rocks/ ). That's the first, and probably last, step I'd take to render a book that the default reader takes issue with.

As I understand it, KoReader doesn’t work with drm protected books which means I can’t use it with most books I buy.

Ebook producers really should be forced to either drop drm or adopt a cross-platform standard.


It's probably too annoying for most, but I had a similar problem with KoReader and library books because those too depend on DRM. I ended up keeping KoReader as an app, then just not loading the app when I was reading a library book. It wasn't too bad.

KoReader also gave me a lot of freedom to manage the bad battery life of my Kobo Sage before it died of other causes. Definitely worth the extra cognitive load of dealing with the two experiences.


Search around, there's surely a way to break the drm. When theres no better way that's what I do too: pay for the book, convert to plain epub.

The publishing industry never got its head out of... some dark place. We've been able to buy mp3s without drm for ages, but somehow books are different.


If you have a ACSM (the file type Adobe Digital Editions uses for DRM) I’ve been using https://www.acsm-converter.com to strip the DRM and return a standard epub

Evidence?


This is a great example of commenting on the headline without reading the article.


Those are some incredibly minor advantages. The advantages of ebooks - easy backups, infinitesimal physical storage requirements, searchability, accessibility for people with visual needs - each one of those outweighs every advantage you listed.


The source site (404 Media) requires a login to read their article. Kotaku's coverage is plainly readable.


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

Search: