gumtree VS locust

Compare gumtree vs locust and see what are their differences.

locust

"git diff" over abstract syntax trees (by bugout-dev)
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
gumtree locust
6 4
871 48
2.4% -
8.2 0.0
27 days ago 7 months ago
Java Python
GNU Lesser General Public License v3.0 only MIT License
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.

gumtree

Posts with mentions or reviews of gumtree. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-11.
  • Pijul: Version-Control Post-Git • Goto 2023
    11 projects | news.ycombinator.com | 11 Aug 2023
    I'm not familiar with Pijul, and haven't finished watching this presentation, but IME the problems with modern version control tools is that they still rely on comparing lines of plain text, something we've been doing for decades. Merge conflicts are an issue because our tools are agnostic about the actual content they're tracking.

    Instead, the tools should be smarter and work on the level of functions, classes, packages, sentences, paragraphs, or whatever primitive makes sense for the project and file that is being changed. In the case of code bases, they need to be aware of the language and the AST of the program. For binary files, they need to be aware of the file format and its binary structure. This would allow them to show actually meaningful diffs, and minimize the chances of conflicts, and of producing a corrupt file after an automatic merge.

    There has been some research in this area, and there are a few semantic diffing tools[1,2,3], but I'm not aware of this being widely used in any VCS.

    Nowadays, with all the machine learning advances, the ideal VCS should also use ML to understand the change at a deeper level, and maybe even suggest improvements. If AI can write code for me, it could surely understand what I'm trying to do, and help me so that version control is entirely hands-free, instead of having to fight with it, and be constantly aware of it, as I have to do now.

    I just finished watching the presentation, and Pijul seems like an iterative improvement over Git. Nothing jumped out at me like a killer feature that would make me want to give it a try. It might be because the author focuses too much on technical details, instead of taking a step back and rethinking what a modern VCS tool should look like today.

    [1]: https://semanticdiff.com/

    [2]: https://github.com/trailofbits/graphtage

    [3]: https://github.com/GumTreeDiff/gumtree

  • We should format code on demand
    7 projects | /r/programming | 1 Mar 2022
    There’s also gumtree: https://github.com/GumTreeDiff/gumtree/wiki/Languages
  • Difftastic: Syntax-aware structured diff tool
    6 projects | news.ycombinator.com | 7 Jul 2021
  • A New Era for Mechanical CAD
    4 projects | news.ycombinator.com | 15 Jun 2021
    GumTree does AST level diffing, hypothetically one could build VCS on top of that. That would work for binary files as long as they are parseable to some sort of sensible AST.

    https://github.com/GumTreeDiff/gumtree

  • Gumtree: A neat code differencing tool
    1 project | news.ycombinator.com | 10 Jan 2021
  • What comes after Git? It's been 15 years since it was created. SVN was created 5 years before Git. CVS was 15 years before SVN
    5 projects | /r/programming | 25 Dec 2020
    There are a few AST-based diffing programs e.g. GumTreeDiff. I haven't tried any of them though.

locust

Posts with mentions or reviews of locust. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-10-06.
  • Effective Code Browsing
    7 projects | news.ycombinator.com | 6 Oct 2021
    Nice!

    Have been working on something similar, although my use case is more about learning how code has changed across git commits: https://github.com/bugout-dev/locust

    For Javascript/Typescript/React support, like you, I hooked into the Babel toolchain. Can't recommend it highly enough.

    There's also a newish project called quick-lint-js which seems to have written their own from-scratch AST parser for JS, but I haven't tried it yet: https://github.com/quick-lint/quick-lint-js

    Finally, another project that I know in this space is comby (I believe it is owned/maintained by the folks at Sourcegraph): https://comby.dev/

    Don't know why I dumped all those links there. Just figured there may be something useful in them for you. Am also just super passionate about building knowledge about code bases by analyzing their ASTs. Nice to meet a fellow enthusiast. :)

  • What if Git worked with Programming Languages?
    17 projects | news.ycombinator.com | 27 Sep 2021
    I maintain a free/open source project that does exactly what the author asks for: https://github.com/bugout-dev/locust.

    Our tool uses git as the foundation of its functionality. It superimposes git diffs on top of ASTs.

    It is insanely powerful.

    For example, we use it to power semantic code search and current support Python, Javascript, and Java. We generate a JSON object defining the AST differences between initial and terminal commits on GitHub PRs and doing text search on the JSON objects performs surprisingly well when we want to answer questions like, "When did we add dateutils as a dependency?" or "When did we last change the /journals handler on the API?"

    The Python integration currently sees the most use but if you are interested in other languages, we would be happy to support it.

    Do drop me a DM if you want help getting started with Locust.

  • Diffsitter: A tree-sitter based AST difftool to get meaningful semantic diffs
    8 projects | news.ycombinator.com | 18 Jul 2021
    My team has a similar project (Locust: https://github.com/bugout-dev/locust) where the goal is to learn the semantic meanings of code changes in git commits, GitHub PRs, etc.

    Since we took git diffs as a target for semantic analysis, we have a different approach to our diffs. We start with line-by-line diffs (specifically using "git diff") and then take a semantic diff by superimposing the git diff information on top of the initial and terminal ASTs.

    This makes the diff calculation cheaper because we don't have to do full diff between trees.

    Haven't updated the code in a few months, but my team is actively using Locust on public GitHub repos to learn the semantics of those code bases. We do plan to do some work on it soon to make it easier to make Locust easier to use (especially as a library).

    Really need to sit down and take a proper look at tree-sitter. We currently support Locust diffs for Python, Javascript, and Java, but each one is custom written and implements the same basic algorithm. It looks like tree sitter might just crush this problem for us.

  • Difftastic: Syntax-aware structured diff tool
    6 projects | news.ycombinator.com | 7 Jul 2021

What are some alternatives?

When comparing gumtree and locust you can also consider the following projects:

difftastic - a structural diff that understands syntax 🟥🟩

weggli - weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.

git-bug - Distributed, offline-first bug tracker embedded in git, with bridges

diffr - Yet another diff highlighting tool

TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

apheleia - 🌷 Run code formatter on buffer contents without moving point, using RCS patches and dynamic programming.

nbdime - Tools for diffing and merging of Jupyter notebooks.

git-imerge - Incremental merge for git

diffsitter - A tree-sitter based AST difftool to get meaningful semantic diffs

mergify - Merge git changes on commit at a time.