this post was submitted on 30 Jun 2024
203 points (98.1% liked)
Linux
48375 readers
1611 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
You hinted at a possibly better version control system at the end there viz merge conflicts. Can you let us know which ones you think are better at this? The amount of time I waste on that at work is bonkers.
Gerrit is probably the poster child for branchless, stack-based diffs in Git. It takes some get getting used to, but once adjust your thruput is really ramps up. In some sense tho, this is a hack by tagging changelist values in the commit message to help reconstruct what the heck is going on due to Git limitations, but it’s old & robust enough to trust that system & many of its users absolutely swear by it (I have limited exposure but have used it more recently I can feel the appeal). You should be able to slap it in front of any Git server—even just straight host HTTP if not something lightweight like cgit, gitweb, or Ayllu. (Jujutsu is the same commit hackery in a different package & I don’t think it moves the needle as much as folks think being ultimately shackled to Git’s design decisions).
If you look outside of snapshot-based tools like Git, Mercurial, & so on, patch-theory-based options offer refuge. Darcs & Pijul are the leading (D)VCSs in the space. Darcs is very mature & shows its age in many ways (but is still developed & works good enough). Pijul is largely based on Darcs but meant be faster (& is), but it is immature; some features are missing on purpose to avoid the swell of Git commands, but I am personally surprised theres no good story for sending patches nor rebase. That said its identity system is how VCS should do it. Both VCSs have a lot less tooling built around them. Darcs is still supported by tools like Nix (but not Flakes) as well as Opam for OCaml with darcs hub & Smederee for maintained public forges. Pijul isn’t supported by much at all unfortunately & while Nest is a public forge, its lacking in features & basic usability like being able to fetch a tarball (despite
pijul archive
). All the latter negativity may sound bad, but all tooling requires momentum. They would be prime candidates for the Gerrit workflow--just without the hacks needed. With the two being similar, I hope we see more tooling pop up to support them & just like trying a new paradigm of programming gives you insight on the ones you know, a new way to do VCS will teach you about version control. Do recommend.