Jujutsu: A Git-compatible DVCS that is both simple and powerful

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • jj

    A Git-compatible VCS that is both simple and powerful

  • Isn't the idea that you continue editing the working copy commit until you actually commit it?

    Also from the documentation:

    https://github.com/martinvonz/jj/blob/main/docs/git-comparis...

    > As a Git power-user, you may think that you need the power of the index to commit only part of the working copy. However, Jujutsu provides commands for more directly achieving most use cases you're used to using Git's index for. For example, to create a commit from part of the changes in the working copy, you might be used to using git add -p; git commit. With Jujutsu, you'd instead use jj split to split the working-copy commit into two commits. To add more changes into the parent commit, which you might normally use git add -p; git commit --amend for, you can instead use jj squash -i to choose which changes to move into the parent commit.

  • lakeFS

    lakeFS - Data version control for your data lake | Git for data

  • Might want to look at purpose built tools for that such as lakeFS (https://github.com/treeverse/lakeFS/)

    * Disclaimer: I'm one of the creators/maintainers of the project.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • stgit

    Stacked Git

  • Pijul needs a 1.0 release if it wants wide adoption. I don't understand why they wait.

    Meanwhile, if rebasing on git is an issue, you should probably try stacked-git (https://stacked-git.github.io/). It manages commits as a stack of patches - like quilt, but on top of git.

  • Git

    Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitgadget.github.io/). Please follow Documentation/SubmittingPatches procedure for any of your improvements.

  • Ooh, that's me! As in the comment, please don't do this.

    It's been a while since I worked at a place doing this, and I'm on my phone, so some details may be fuzzy or wrong, but when I was figuring all this out, I remember this SO comment being really helpful:

    https://stackoverflow.com/a/23806990

    Basically, there's two different APIs, and neither of them are designed for ignoring config files (but both of them happen to do things that look like ignoring config files, therefore get misused).

    `assume-unchanged` is an optimisation tool that tells git that it shouldn't both checking files and folders that are expensive to check but never changed. If changes do ever happen, and git realises this, then git will remove the assume-unchanged flag - because clearly it wasn't true!

    `skip-worktree` is a more aggressive version of this that tells git never to touch certain files or folders at all. But now it changes do happen to those files, it's not clear what git should do. Overwriting the files would cause data loss, but ignoring the files completely means that you miss out on upstream changes. And because you're telling git that these files should never be checked, there's no good way to handle merging and conflicts.

    What typically happens with both of these flags is that they work well about 80% of the time, and then cause a lot of confusion that last 20% of the time.

    The alternative is almost always some sort of configuration file that is directly referenced in .gitignore, and that therefore never gets checked in. (In addition, it's often useful to have a (e.g.) config.json.default file for getting new developers up and running quickly.) Any system that needs to be configured (database connections, API URLs, IP addresses, etc) should use this configuration file. Alternatively, I find environment variables, along with .env files for local development, to be really effective, because most things can already be configured that way.

    This typically takes sightly longer to set up the first time, but will work very reliably from then on.

    See also these changes in git's official documentation, and the commit message that explains why it was necessary:

    https://github.com/git/git/commit/1b13e9032f039c8cdb1994dd09...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Getting Started with GitHub CLI: A Quick Guide to Installation and Usage

    3 projects | dev.to | 27 May 2024
  • So You Think You Know Git – Git Tips and Tricks by Scott Chacon

    6 projects | news.ycombinator.com | 13 Feb 2024
  • Git Branches: Intuition and Reality

    6 projects | news.ycombinator.com | 23 Nov 2023
  • Confusing Git Terminology

    5 projects | news.ycombinator.com | 2 Nov 2023
  • Show HN: Gogit – Just enough Git (in Go) to push itself to GitHub

    8 projects | news.ycombinator.com | 29 Jul 2023