cockroach VS graphite-cli

Compare cockroach vs graphite-cli and see what are their differences.

cockroach

CockroachDB - the open source, cloud-native distributed SQL database. (by cockroachdb)

graphite-cli

Graphite's CLI makes creating and submitting stacked changes easy. (by withgraphite)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
cockroach graphite-cli
98 8
28,897 217
1.1% -
10.0 7.2
about 23 hours ago 9 months ago
Go TypeScript
GNU General Public License v3.0 or later GNU Affero General Public License v3.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

cockroach

Posts with mentions or reviews of cockroach. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-08.

graphite-cli

Posts with mentions or reviews of graphite-cli. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-17.
  • Stacked changes: how FB and Google engineers stay unblocked and ship faster
    12 projects | news.ycombinator.com | 17 Nov 2021
    - https://docs.graphite.dev/guides/graphite-dashboard

    Re `git rebase --onto`, the open source CLI offers a recursive implementation to prevent you from having to carefully rebase each branch in your stack (https://github.com/screenplaydev/graphite-cli/blob/main/src/...)

    One of the reasons you cant use a simple rebase --onto is that you dont want to accidentally copy all downstack commits between the merge base and what you're restacking onto. The CLI tracks branch bases commits through git refs to ensure that restacking never duplicates commits.

    12 projects | news.ycombinator.com | 17 Nov 2021
    Great question! It does lots of things. The CLI (https://github.com/screenplaydev/graphite-cli) lets you:

    - Recursively rebase changes to keep your branches correctly stacked

    - Allow you to shift half of a stack onto a different branch

    - Open up PRs/push changes for all the branches in a stack

    - Offer to delete merged branches from local, rebases the remaining branches, and adjust github pr merge bases.

    The web dashboard lets you:

    - See an inbox of PRs spanning any number of repos, based on which ones need action

    - Navigate between PRs in a stack

    - Modify Prs, review, all of which is synced to Github

    - Shortcuts, client side caching for fast loading, Phabricator style interface, macros, landing a stack of PRs together, and much more :)

    Give the tool a try, we'd love to hear your feedback in the community Slack! https://join.slack.com/t/graphite-community/shared_invite/zt...

    12 projects | news.ycombinator.com | 17 Nov 2021
    The part of Graphite that helps manage stacked changes locally is open source - you can see how it handles the recursive rebases here: https://github.com/screenplaydev/graphite-cli/blob/main/src/...
    12 projects | news.ycombinator.com | 17 Nov 2021
    This is exactly the problem that graphite-cli solves (https://github.com/screenplaydev/graphite-cli)

    It keeps track of branchs and their parents by storing a tiny bit of metadata in the native git refs. It uses that information to perform recursive rebases: https://github.com/screenplaydev/graphite-cli/blob/main/src/...

    It ends up working seamlessly - you just modify some branch, and then run `gt stack fix` to recursively rebase everything. (and then `gt stack submit` to sync everything to github :)

    docs here: https://docs.graphite.dev/guides/graphite-cli

    12 projects | news.ycombinator.com | 17 Nov 2021
    We tried manually rebasing too, before building Graphite. The challenge you face with manual rebasing is two parts:

    1) If you update the bottom branch, you need to manually rebase each branch above it. That becomes brutal if your stack is >3 branches.

    2) You cant perform a simple rebase-onto, because you'll copy all commits between the higher branch and trunk. You'd have to perform a three-way rebase, specifying the range of commits you'd like to copy onto the destination. This becomes infeasible by hand.

    Graphite-cli gets around this by tracking branch metadata and storing it in native git refs (https://graphite.dev/blog/post/y6ysWaplagKc8YEFzYfr). When you rebase a stack, it recursively performs the three-way merge to fix things up smoothly.

    On top of this, git provides no good mechanisms for submitting the stack. Graphite cli can submit/sync your whole stack as individual PRs, and can prune merged branches from the bottom of local stacks. Ends up coming together as a really powerful workflow :)

    The cli is open source here: https://github.com/screenplaydev/graphite-cli, with docs here https://docs.graphite.dev/guides/graphite-cli. There's also an active Slack community which helps provide input on new features and adjustments.

    Please let me know if you have any other questions!

What are some alternatives?

When comparing cockroach and graphite-cli you can also consider the following projects:

vitess - Vitess is a database clustering system for horizontal scaling of MySQL.

neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.

tidb - TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. Try AI-powered Chat2Query free at : https://tidbcloud.com/free-trial

Trino - Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)

yugabyte-db - YugabyteDB - the cloud native distributed SQL database for mission-critical applications.

InfluxDB - Scalable datastore for metrics, events, and real-time analytics

rqlite - The lightweight, distributed relational database built on SQLite.

Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.

dgraph - The high-performance database for modern applications

git-stack - Stacked branch management for Git

snowflake - Snowflake is a network service for generating unique ID numbers at high scale with some simple guarantees.

edgedb - A graph-relational database with declarative schema, built-in migration system, and a next-generation query language