com.github.gumtreediff:client

An awesome code differencing tool

https://github.com/gumtreediff/gumtree

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
    Links to: acm.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

abstract-syntax-tree diff gumtree
Last synced: 6 months ago · JSON representation ·

Repository

An awesome code differencing tool

Basic Info
Statistics
  • Stars: 1,149
  • Watchers: 24
  • Forks: 179
  • Open Issues: 33
  • Releases: 12
Topics
abstract-syntax-tree diff gumtree
Created over 11 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Code of conduct Citation

README.md

GumTree

An awesome code differencing tool that you can integrate with Git!

Status

Build and Test GumTree

Description

GumTree is a syntax-aware diff tool. It improves text-based diff tools in two important ways: * the edit actions are always aligned with the syntax, * it can detect moved or renamed elements in addition of deleted and inserted code.

Documentation

To use GumTree, you can start by consulting the Getting Started page from our wiki. If you have a question to ask, please use GitHub's discussions instead of opening an issue.

Screenshots

The directory diff viewer

Directory comparator view

The file diff viewer

Diff view on a CSS file

Diff view on a Java file

Supported languages

We already deal with a wide range of languages: C, Java, JavaScript, Python, R, Ruby. Click here for more details about the language we support.

More languages are coming soon, if you want to help contact me.

Citing GumTree

We are researchers, therefore if you use GumTree in an academic work we would be really glad if you cite the relevant articles among the ones in the following bibtex:

```bibtex @inproceedings{DBLP:conf/kbse/FalleriMBMM14, author = {Jean{-}R{\'{e}}my Falleri and Flor{\'{e}}al Morandat and Xavier Blanc and Matias Martinez and Martin Monperrus}, title = {Fine-grained and accurate source code differencing}, booktitle = {{ACM/IEEE} International Conference on Automated Software Engineering, {ASE} '14, Vasteras, Sweden - September 15 - 19, 2014}, pages = {313--324}, year = {2014}, url = {http://doi.acm.org/10.1145/2642937.2642982}, doi = {10.1145/2642937.2642982} }

@article{DBLP:journals/tse/MartinezFM23, author = {Matias Martinez and Jean{-}R{\'{e}}my Falleri and Martin Monperrus}, title = {Hyperparameter Optimization for {AST} Differencing}, journal = {{IEEE} Trans. Software Eng.}, volume = {49}, number = {10}, pages = {4814--4828}, year = {2023}, url = {https://doi.org/10.1109/TSE.2023.3315935}, doi = {10.1109/TSE.2023.3315935}, timestamp = {Thu, 09 Nov 2023 21:13:48 +0100}, biburl = {https://dblp.org/rec/journals/tse/MartinezFM23.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }

@inproceedings{DBLP:conf/icse/FalleriM24, author = {Jean{-}R{\'{e}}my Falleri and Matias Martinez}, title = {Fine-grained, accurate and scalable source differencing}, booktitle = {Proceedings of the 46th {IEEE/ACM} International Conference on Software Engineering, {ICSE} 2024, Lisbon, Portugal, April 14-20, 2024}, pages = {231:1--231:12}, publisher = {{ACM}}, year = {2024}, url = {https://doi.org/10.1145/3597503.3639148}, doi = {10.1145/3597503.3639148}, timestamp = {Mon, 24 Jun 2024 15:20:25 +0200}, biburl = {https://dblp.org/rec/conf/icse/FalleriM24.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} } ```

Owner

  • Name: GumTreeDiff
  • Login: GumTreeDiff
  • Kind: organization

A neat code differencing tool

Citation (CITATION.cff)

cff-version: 1.2.0
preferred-citation:
  type: conference-paper
  conference:
    name: "Automated Software Engineering"
  collection-title: "Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering"
  publisher: ACM
  editors:
  - family-names: "Crnkovic"
    given-names: "Ivica"
  - family-names: "Chechik"
    given-names: "Marsha"
  - family-names: "Grünbacher"
    given-names: "Paul"
  authors:
  - family-names: Falleri
    given-names: Jean-Rémy
    orcid: https://orcid.org/0000-0002-8284-7218
  - family-names: Morandat
    given-names: Floréal
  - family-names: Blanc
    given-names: Xavier
  - family-names: Martinez
    given-names: Matias
    orcid: https://orcid.org/0000-0002-2945-866X
  - family-names: Monperrus
    given-names: Martin
    orcid: https://orcid.org/0000-0003-3505-3383
  doi: 10.1145/2642937.2642982
  month: 9
  start: 313
  end: 324
  title: "Fine-grained and accurate source code differencing"
  year: 2014

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 19
  • Watch event: 181
  • Delete event: 1
  • Issue comment event: 37
  • Push event: 24
  • Gollum event: 11
  • Pull request event: 6
  • Fork event: 7
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 19
  • Watch event: 181
  • Delete event: 1
  • Issue comment event: 37
  • Push event: 24
  • Gollum event: 11
  • Pull request event: 6
  • Fork event: 7

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 132
  • Total pull requests: 33
  • Average time to close issues: 5 months
  • Average time to close pull requests: 18 days
  • Total issue authors: 80
  • Total pull request authors: 17
  • Average comments per issue: 4.22
  • Average comments per pull request: 2.33
  • Merged pull requests: 27
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 15
  • Pull requests: 4
  • Average time to close issues: 27 days
  • Average time to close pull requests: 14 days
  • Issue authors: 11
  • Pull request authors: 1
  • Average comments per issue: 0.8
  • Average comments per pull request: 1.75
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • algomaster99 (7)
  • dayaad (5)
  • SherloqueChang (5)
  • codinuum (4)
  • martinezmatias (4)
  • yikengboy (4)
  • jrfaller (4)
  • monperrus (4)
  • csiefer2 (4)
  • ilyagr (3)
  • pouryafard75 (3)
  • Symbolk (3)
  • Feng-Jay (3)
  • jbellis (2)
  • nicolaskruchten (2)
Pull Request Authors
  • pouryafard75 (13)
  • koppor (11)
  • TnoAlex (3)
  • Symbolk (3)
  • XYZboom (2)
  • martinezmatias (2)
  • jpienaar (2)
  • eas5 (1)
  • rpau (1)
  • duesee (1)
  • algomaster99 (1)
  • Ariel-Liao (1)
  • CaptainEmerson (1)
  • lmove (1)
  • mahtab-nejati (1)
Top Labels
Issue Labels
question (39) bug (24) enhancement (19) help wanted (17) wontfix (4) invalid (3) documentation (2)
Pull Request Labels
bug (5) enhancement (2)

Packages

  • Total packages: 32
  • Total downloads: unknown
  • Total dependent packages: 39
    (may contain duplicates)
  • Total dependent repositories: 143
    (may contain duplicates)
  • Total versions: 166
proxy.golang.org: github.com/GumTreeDiff/gumtree
  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago
proxy.golang.org: github.com/gumtreediff/gumtree
  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:core

GumTree core module.

  • Versions: 8
  • Dependent Packages: 23
  • Dependent Repositories: 33
Rankings
Dependent packages count: 2.8%
Dependent repos count: 4.0%
Average: 9.0%
Stargazers count: 13.5%
Forks count: 15.7%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:client

GumTree abstract client module.

  • Versions: 8
  • Dependent Packages: 3
  • Dependent Repositories: 15
Rankings
Dependent repos count: 6.3%
Average: 13.3%
Stargazers count: 13.5%
Forks count: 15.7%
Dependent packages count: 17.6%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 6
  • Dependent Repositories: 2
Rankings
Dependent packages count: 9.7%
Stargazers count: 12.7%
Average: 13.4%
Forks count: 15.2%
Dependent repos count: 16.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.jdt

GumTree tree generator for Java code (Eclipse JDT based).

  • Versions: 8
  • Dependent Packages: 2
  • Dependent Repositories: 13
Rankings
Dependent repos count: 6.8%
Stargazers count: 13.5%
Average: 14.8%
Forks count: 15.7%
Dependent packages count: 23.2%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr3

GumTree abstract AntLR module.

  • Versions: 7
  • Dependent Packages: 5
  • Dependent Repositories: 0
Rankings
Dependent packages count: 11.5%
Stargazers count: 13.5%
Forks count: 15.7%
Average: 19.0%
Dependent repos count: 35.3%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:client.diff

GumTree diff client.

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 11
Rankings
Dependent repos count: 7.4%
Stargazers count: 13.5%
Forks count: 15.7%
Average: 21.7%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr-xml

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 12.7%
Forks count: 15.2%
Average: 21.8%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr-json

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 12.7%
Forks count: 15.2%
Average: 21.8%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr-php

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 12.7%
Forks count: 15.2%
Average: 21.8%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.sax

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 12.7%
Forks count: 15.2%
Average: 21.8%
Dependent packages count: 50.1%
Last synced: about 1 year ago
repo1.maven.org: com.github.gumtreediff:gen.antlr-antlr

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 12.7%
Forks count: 15.2%
Average: 21.8%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr-r

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 12.7%
Forks count: 15.2%
Average: 21.8%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.ruby

GumTree tree generator for Ruby code (JRuby based).

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 13.5%
Forks count: 15.7%
Average: 22.2%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.c

GumTree tree generator for C code. Requires cgum.

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 13.5%
Forks count: 15.7%
Average: 22.2%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.js

GumTree tree generator for JavaScript code (Rhino based).

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Stargazers count: 13.5%
Forks count: 15.7%
Average: 22.2%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.javaparser

GumTree tree generator for Java code (JavaParser based).

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 3
Rankings
Stargazers count: 13.5%
Dependent repos count: 13.8%
Forks count: 15.7%
Average: 23.3%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gumtree-all

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Stargazers count: 12.7%
Forks count: 15.2%
Dependent repos count: 20.8%
Average: 24.7%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.python

GumTree tree generator for Python. Requires pythonparser.

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Dependent repos count: 20.8%
Average: 25.0%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr3-xml

GumTree tree generator for XML code (AntLR based).

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Dependent repos count: 20.8%
Average: 25.0%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr-css

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 10.7%
Forks count: 11.0%
Average: 25.6%
Dependent repos count: 32.0%
Dependent packages count: 48.9%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gumtree

GumTree is a complete framework to deal with source code as trees and compute differences between them.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 10.7%
Forks count: 11.0%
Average: 25.6%
Dependent repos count: 32.0%
Dependent packages count: 48.9%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr4

GumTree abstract AntLR4 module.

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 10.7%
Forks count: 11.0%
Average: 25.6%
Dependent repos count: 32.0%
Dependent packages count: 48.9%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.yaml

GumTree tree generator for YAML code (SnakeYAML based).

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 12.0%
Forks count: 14.8%
Average: 27.2%
Dependent repos count: 33.7%
Dependent packages count: 48.2%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.srcml

GumTree tree generator for C/C++, C# and Java code. Requires srcml.

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Average: 28.7%
Dependent repos count: 35.3%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr3-php

GumTree tree generator for PHP code (AntLR based).

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Average: 28.7%
Dependent repos count: 35.3%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr3-antlr

GumTree tree generator for AntLR grammars (AntLR based)

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Average: 28.7%
Dependent repos count: 35.3%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr3-json

GumTree tree generator for JSON code (AntLR based).

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Average: 28.7%
Dependent repos count: 35.3%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.antlr3-r

GumTree tree generator for R code (AntLR based).

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Average: 28.7%
Dependent repos count: 35.3%
Dependent packages count: 50.1%
Last synced: 7 months ago
repo1.maven.org: com.github.gumtreediff:gen.css

GumTree tree generator for CSS code based on ph-css.

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 13.5%
Forks count: 15.7%
Average: 28.7%
Dependent repos count: 35.3%
Dependent packages count: 50.1%
Last synced: 6 months ago
repo1.maven.org: com.github.gumtreediff:gen.xml

GumTree tree generator for XML code (JSoup based).

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 33.7%
Average: 40.9%
Dependent packages count: 48.2%
Last synced: 7 months ago

Dependencies

build.gradle maven
  • org.atteo.classindex:classindex 3.10 implementation
  • org.hamcrest:hamcrest-library 2.1 testImplementation
  • org.junit.jupiter:junit-jupiter 5.7.0 testImplementation
client.diff/build.gradle maven
  • com.fifesoft:rsyntaxtextarea 3.1.6 implementation
  • com.sparkjava:spark-core 2.9.1 implementation
  • it.unimi.dsi:fastutil 8.3.1 implementation
  • org.rendersnake:rendersnake 1.9.0 implementation
  • org.slf4j:slf4j-simple 1.7.21 implementation
core/build.gradle maven
  • com.github.mpkorstanje:simmetrics-core 3.2.3 implementation
  • com.google.code.gson:gson 2.8.2 implementation
  • it.unimi.dsi:fastutil 8.3.1 implementation
  • org.jgrapht:jgrapht-core 1.5.1 implementation
gen.css/build.gradle maven
  • com.helger:ph-css 6.2.3 implementation
gen.javaparser/build.gradle maven
  • com.github.javaparser:javaparser-symbol-solver-core 3.18.0 implementation
gen.jdt/build.gradle maven
  • org.eclipse.jdt:org.eclipse.jdt.core 3.26.0 implementation
gen.js/build.gradle maven
  • org.mozilla:rhino 1.7.13 implementation
gen.ruby/build.gradle maven
  • org.jruby:jrubyparser 0.5.3 implementation
.github/workflows/build-test-gumtree.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v2 composite
  • ncipollo/release-action v1 composite
docker/Dockerfile docker
  • ubuntu focal build