Giter Site home page Giter Site logo

jonatanpedersen / git-json-merge Goto Github PK

View Code? Open in Web Editor NEW
103.0 103.0 14.0 78 KB

A git merge driver that use xdiff to automatically resolve merge conflicts in json files. This project was inspired by git-po-merge.

License: MIT License

JavaScript 100.00%
cli git json merge

git-json-merge's People

Contributors

greenkeeper[bot] avatar jonatanpedersen avatar julscsl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

git-json-merge's Issues

No trailing newline

After merging, the resulting JSON file doesn't have a trailing newline, even if the original files did. Most files tend to have the trailing newlines, so it would be a better default to add one to the result; however, it can also be detected in the original files and preserved.

Happy to contribute if this is deemed a valid issue.

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml
  • The new Node.js version is in-range for the engines in 1 of your package.json files, so that was left alone

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Source Code Files Contain CRLF Line-endings

This is similar to a previous issue, #1, filed because CRLF line-endings caused issues for *nix users using git-json-merge.

As noted by @james-siteclick here, it looks like CRLF line-endings were re-introduced in commit 0c52244.

As a result, I get the following error on macOS when git attempts to resolve a JSON conflict:

env: node\r: No such file or directory

An in-range update of mocha is breaking the build 🚨

Version 3.4.0 of mocha just got published.

Branch Build failing 🚨
Dependency mocha
Current Version 3.3.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As mocha is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v3.4.0

Mocha is now moving to a quicker release schedule: when non-breaking changes are merged, a release should happen that week.

This week's highlights:

  • allowUncaught added to commandline as --allow-uncaught (and bugfixed)
  • warning-related Node flags

🎉 Enhancements

🐛 Fixes

🔩 Other

Commits

The new version differs by 9 commits0.

  • 7554b31 Add Changelog for v3.4.0
  • 9f7f7ed Add --trace-warnings flag
  • 92561c8 Add --no-warnings flag
  • ceee976 lint test/integration/fixtures/simple-reporter.js
  • dcfc094 Revert "use semistandard directly"
  • 93392dd no special case for macOS running Karma locally
  • 4d1d91d --allow-uncaught cli option
  • fb1e083 fix allowUncaught in browser
  • 4ed3fc5 Add license report and scan status

false

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of mocha is breaking the build 🚨

The devDependency mocha was updated from 7.0.0 to 7.0.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

mocha is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v7.0.1

7.0.1 / 2020-01-25

🐛 Fixes

  • #4165: Fix exception when skipping tests programmatically (@juergba)
  • #4153: Restore backwards compatibility for reporterOptions (@holm)
  • #4150: Fix recovery of an open test upon uncaught exception (@juergba)
  • #4147: Fix regression of leaking uncaught exception handler (@juergba)

📖 Documentation

🔩 Other

Commits

The new version differs by 9 commits.

  • d0f04e9 Release v7.0.1
  • 2277958 update CHANGELOG for v7.0.1 [ci skip]
  • 0be3f78 Fix exception when skipping tests programmatically (#4165)
  • c0f1d14 uncaughtException: fix recovery when current test is still running (#4150)
  • 9c10ada Fix backwards compability break for reporterOptions
  • a24683f Throw a descriptive error when a non-function is given to a runnable (#4133)
  • 579fd09 update copyright & trademark notices per OJSF; closes #4145
  • 0e1ccbb Fix leaking global 'uncaughtException' handler (#4147)
  • 7d78f20 Broken links in docs (#4140)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Whitespace not adjustable

The whitespace is fixed at 4 space indenting and some of my projects use 2 space indenting. The addition of a config file that overrides the default would be a welcome update.

Preserve order of keys when possible

I'm using git-json-merge to merge package.json files where dependencies are typically sorted alphabetically. It would be useful to have the merge preserve the relative order of items where possible, i.e.:

Base:

{
  "a": 1,
  "c": 3,
  "e": 5
}

Left change:

{
  "a": 1,
  "b": 2,
  "c": 3,
  "e": 5
}

Right change:

{
  "a": 1,
  "c": 3,
  "d": 4,
  "e": 5
}

Expected output:

{
  "a": 1,
  "b": 2,
  "c": 3,
  "d": 4,
  "e": 5
}

Actual output:

{
  "a": 1,
  "c": 3,
  "e": 5,
  "d": 4,
  "b": 2
}

Data is lost after merge

Like the title states, data seems to be lost after the merge.
Two users added/updated two different nodes, both were lost in the merge.

Here's my git output:
git pull
Auto-merging project.side
Merge made by the 'recursive' strategy.
.gitignore | 3 +
project.side | 2906 ++++++++++++++++++++++++++++-----------------
2 files changed, 1799 insertions(+), 1110 deletions(-)

.side is the file extension for this particular file, but the data is in json format.

Any ideas?

Merge conflicts display error of command not found

When using the merge driver, i get the following error:

> git merge temp   
$(npm bin)/git-json-merge .merge_file_tpeMkq .merge_file_XDZbj1 .merge_file_gwQud5: Unknown: command not found
Auto-merging document.json
CONFLICT (content): Merge conflict in document.json
Automatic merge failed; fix conflicts and then commit the result.

The merge has changes in two different lines, so without this merge driver, there actually is no merge conflict. (the default git resolves it automatically).

I have tried to install the driver globally as well and it didnt make a difference.

File: .gitattributes

*.json merge=json

File: .gitconfig


[core]
    attributesfile = ~/.gitattributes
[merge "json"]
    name = custom merge driver for json files
    driver = git-json-merge %A %O %B
        

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.