jsonmerge_git_merge_driver VS git-merge-driver

Compare jsonmerge_git_merge_driver vs git-merge-driver and see what are their differences.

jsonmerge_git_merge_driver

demo custom Git merge driver to merge JSON objects (by fcostin)

git-merge-driver

Example of how to configure a custom git merge driver (by Praqma)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
jsonmerge_git_merge_driver git-merge-driver
1 2
0 96
- -
0.0 0.0
over 2 years ago 3 months ago
Python Shell
BSD 3-clause "New" or "Revised" License 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.

jsonmerge_git_merge_driver

Posts with mentions or reviews of jsonmerge_git_merge_driver. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-27.
  • What if Git worked with Programming Languages?
    17 projects | news.ycombinator.com | 27 Sep 2021
    I investigated the option of using a custom git merge driver for a project where we were planning to version control a bunch of data files using git.

    Here's a proof of concept python merge driver I bashed together at the time to auto-merge JSON objects: https://github.com/fcostin/jsonmerge_git_merge_driver

    This never went anywhere near production, but it was very easy to put together something basic.

    One complication with using a custom merge driver, as discussed by https://github.com/Praqma/git-merge-driver , is that they need to be configured inside the `.git/config` of the repo, which itself is not version controlled. So there's an additional config management overhead to rolling that out to everyone in a machine. Additionally, if outsourcing hosting for git repos, it may not be supported to install and configure a custom merge driver for merges conducted by the hosting platform (e.g. merges created by github.com pull request workflow).

    One idea I had at the time was using external schema files (e.g. JSON schema for JSON files) to help guide/constrain the result of the merge. I never implemented it, but it should be possible. If the schemas were also version controlled in the same git repo that stores the data, you'd need to figure out which one (and which version) to load when resolving a merge conflict of a data file. There doesn't seem to be a well-supported robust way for a merge driver script to discover the source and destination branches, but there are some potentially fragile ways of doing it that work some of the time.

git-merge-driver

Posts with mentions or reviews of git-merge-driver. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-27.
  • Is it possible to automate merges with folders that have known resolution paths when conflicts occur?
    1 project | /r/git | 20 Mar 2023
    You could make a custom merge driver for the conflicting file: https://github.com/Praqma/git-merge-driver
  • What if Git worked with Programming Languages?
    17 projects | news.ycombinator.com | 27 Sep 2021
    I investigated the option of using a custom git merge driver for a project where we were planning to version control a bunch of data files using git.

    Here's a proof of concept python merge driver I bashed together at the time to auto-merge JSON objects: https://github.com/fcostin/jsonmerge_git_merge_driver

    This never went anywhere near production, but it was very easy to put together something basic.

    One complication with using a custom merge driver, as discussed by https://github.com/Praqma/git-merge-driver , is that they need to be configured inside the `.git/config` of the repo, which itself is not version controlled. So there's an additional config management overhead to rolling that out to everyone in a machine. Additionally, if outsourcing hosting for git repos, it may not be supported to install and configure a custom merge driver for merges conducted by the hosting platform (e.g. merges created by github.com pull request workflow).

    One idea I had at the time was using external schema files (e.g. JSON schema for JSON files) to help guide/constrain the result of the merge. I never implemented it, but it should be possible. If the schemas were also version controlled in the same git repo that stores the data, you'd need to figure out which one (and which version) to load when resolving a merge conflict of a data file. There doesn't seem to be a well-supported robust way for a merge driver script to discover the source and destination branches, but there are some potentially fragile ways of doing it that work some of the time.

What are some alternatives?

When comparing jsonmerge_git_merge_driver and git-merge-driver you can also consider the following projects:

nvim-treesitter-context - Show code context

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

unison - A friendly programming language from the future

nbdime - Tools for diffing and merging of Jupyter notebooks.

git-sqlite - A custom diff and merge driver for sqlite