jj
pre-commit
jj | pre-commit | |
---|---|---|
114 | 200 | |
9,612 | 13,078 | |
- | 1.6% | |
10.0 | 8.1 | |
4 days ago | 19 days ago | |
Rust | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jj
- Jujutsu: A Git-compatible VCS that is both simple and powerful
-
Ask HN: Git Alternatives – Sapling vs. Jj
have you experienced particularly slow pushes with large repositories at all, and if so were you able to resolve them?
I did some profiling & it looks like the issue lies with `libgit2`, but I haven’t been able to replicate the issue outside of that work codebase[0].
[0]: https://github.com/martinvonz/jj/issues/1841#issuecomment-23...
-
Rewrite Git history via drag-and-drop
I'm just going to drop a casual shout-out to jujutsu[1]. It's 100% git-compatible—you can mix and match jj and git commands whenever needed, and your coworkers never need know you're using something else—but it elegantly solves things like rebase/merge conflicts (and solves a lot of other sharp edges in git at the same time).
It is one of those rare birds that is both more powerful than the tool that it replaces while also being drastically easier to use. I am (was?) a git power user, and it took me all of a day to replace git with jj, and the rest of the week to become essentially as fluent. I will never go back.
[1] https://github.com/martinvonz/jj
-
Jujutsu (jj), a Git compatible VCS
In some cases, yes, but I think the way jj handles conflicts is easier to follow. You can see the conflict resolution in `jj diff` and you can rebase it like a regular commit. rerere's state is harder to understand, I think. See https://github.com/martinvonz/jj/issues/175#issuecomment-107... for some more discussion.
-
How to fork: Best practices and guide
This will be easier with jujutsu(https://github.com/martinvonz/jj)?
-
Why some of us like "interdiff" code review systems (not GitHub)
We strongly considered Graphite as an alternative to Gerrit at my last job that I mentioned at the start of this post (which I am no longer at, actually) because it does look like an absolutely excellent product, I will admit. You should all be proud of a smart design and smart set of tools.
But there's a really really really really really really big problem. Me and the other main engineer on our team use a custom frontend to Git called Jujutsu[1] for all my development. Jujutsu is about 1000x better than Git. So that's nice.
But gt, the graphite client, is not open source. I have no idea how to make them work together. I have no idea how to extend Jujutsu to handle Graphite stacks, because I don't even think there's an API to handle any of this.
I even wrote a Gerrit integration for Jujutsu to handle this, and Gerrit + Jujutsu is absolutely a force to be reckoned with IMO, even if the UX isn't as nice as Graphite's.
Please! Make gt open source and make it possible for third parties to make and update stacks. This isn't just useful for jj but all kinds of automation that wants to contribute patches -- imagine tools like Google's internal "Code Review ML models" that might recommend you rename a variable based on context. They will suggest the fix for you or even apply it!
[1] https://github.com/martinvonz/jj
- Sapling: Source control that's user-friendly and scalable
-
Circles of Truth: Overcomplicating simple commands
Honestly, that's less keystrokes than adding a shellAlias. If you aren't sold on using nix to manage your system's configuration, this seems overcomplicated. If you use nix, then you are already probably frustrated at keeping your nix configuration in sync with quick little optimizations you do on a regular basis. With nix, everything is source controlled. If you are a dotfiler, then you would still have to commit your changes. I guess that's true in my solution as well. The git add in my update is probably the most dubious element of this entire schrade. That is unless, you are using jj.
- Jujutsu: A Next Generation Replacement for Git
- A Git story: Not so fun this time
pre-commit
-
Crafting a Custom SAM Template for Your AWS Lambda Function, Resource, and Operations
Just give you an idea of how to implement a template for serverless in your organization; you can create multiple cases and embed the practice of your organization to the template like pre-commit, cicd, lambda-layer-secret, lambda-layer-powertools and more
-
Speed up CI with uv ⚡
When using pre-commit for linting:
-
12 Steps to Organize and Maintain Your Python Codebase for Beginners
Instead of running these tools manually every time you make changes, you can automate the process with pre-commit hooks. Pre-commit hooks run automatically before each commit, blocking the commit if any tool fails.
-
How I use git
Our team is small and we use:
git hooks from https://pre-commit.com
-
How to Estimate Cloud Costs with Terraform and InfraCost
You can also add InfraCost as part of the pre-commit. With pre-commit, you can define some hooks that you can easily run before you push your code. There are multiple ways to install pre-commit, and you can find examples here.
-
How Should You Use an Auto-Formatter?
In the case of pre-commit hooks, the runtime either has to be installed manually by every user (in the case of Husky) or is handled in Python (in the case of pre-commit). Running Node.js through Python/pyenv introduces an additional layer of complexity, which can lead to issues like OpenSSL library incompatibilities.
-
Using TruffleHog and pre-commit hook to prevent secret exposure
I'm using pre-commit, follow the link to get installation instructions.
-
How to review as a Pro
Not only can you check how well your code follows certain rules but also add auto-formatting options. This way, most inconsistencies are fixed automatically, saving time. Linters start up can be automated, for example, with pre-commit tool for python and this logic can be integrated into GitHub PR or new commits workflow. So before a new Pull Request is reviewed, it's the author who resolves any code style issues.
-
How to setup Black and pre-commit in python for auto text-formatting on commit
Today we are going to look at how to setup Black (a python code formatter) and pre-commit (a package for handling git hooks in python) to automatically format you code on commit.
-
Implementing Quality Checks In Your Git Workflow With Hooks and pre-commit
# See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-toml - id: check-added-large-files - repo: local hooks: - id: tox lint name: tox-validation entry: pdm run tox -e test,lint language: system files: ^src\/.+py$|pyproject.toml|^tests\/.+py$ types_or: [python, toml] pass_filenames: false - id: tox docs name: tox-docs language: system entry: pdm run tox -e docs types_or: [python, rst, toml] files: ^src\/.+py$|pyproject.toml|^docs\/ pass_filenames: false - repo: https://github.com/pdm-project/pdm rev: 2.10.4 # a PDM release exposing the hook hooks: - id: pdm-lock-check - repo: https://github.com/jumanjihouse/pre-commit-hooks rev: 3.0.0 hooks: - id: markdownlint
What are some alternatives?
git-branchless - High-velocity, monorepo-scale workflow for Git
husky - Git hooks made easy 🐶 woof!
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.
gitleaks - Find secrets with Gitleaks 🔑
forgit - :zzz: A utility tool powered by fzf for using git interactively.
ruff - An extremely fast Python linter and code formatter, written in Rust.
EdenSCM - A Scalable, User-Friendly Source Control System. [Moved to: https://github.com/facebook/sapling]
semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
git-imerge - Incremental merge for git
Poetry - Python packaging and dependency management made easy
git-issue - Git-based decentralized issue management
pre-commit-golang - Pre-commit hooks for Golang with support for monorepos, the ability to pass arguments and environment variables to all hooks, and the ability to invoke custom go tools.