)]}'
{
  "commit": "8210f29fe43ccd35e7d2ed3ed45a84a75b2717c4",
  "tree": "e226ef95a4bd159017444cda259d7437374c3759",
  "parents": [
    "983c25064edeada19bd46aa604a9b90e23778a90"
  ],
  "author": {
    "name": "Thomas Wolf",
    "email": "thomas.wolf@paranor.ch",
    "time": "Mon Apr 12 23:50:54 2021 +0200"
  },
  "committer": {
    "name": "Matthias Sohn",
    "email": "matthias.sohn@sap.com",
    "time": "Mon Apr 19 01:52:19 2021 +0200"
  },
  "message": "Implement ours/theirs content conflict resolution\n\nGit has different conflict resolution strategies:\n\n* There is a tree merge strategy \"ours\" which just ignores any changes\n  from theirs (\"-s ours\"). JGit also has the mirror strategy \"theirs\"\n  ignoring any changes from \"ours\". (This doesn\u0027t exist in C git.)\n  Adapt StashApplyCommand and CherrypickCommand to be able to use those\n  tree merge strategies.\n* For the resolve/recursive tree merge strategies, there are content\n  conflict resolution strategies \"ours\" and \"theirs\", which resolve\n  any conflict hunks by taking the \"ours\" or \"theirs\" hunk. In C git\n  those correspond to \"-Xours\" or -Xtheirs\". Implement that in\n  MergeAlgorithm, and add API to set and pass through such a strategy\n  for resolving content conflicts.\n* The \"ours/theirs\" content conflict resolution strategies also apply\n  for binary files. Handle these cases in ResolveMerger.\n\nNote that the content conflict resolution strategies (\"-X ours/theirs\")\ndo _not_ apply to modify/delete or delete/modify conflicts. Such\nconflicts are always reported as conflicts by C git. They do apply,\nhowever, if one side completely clears a file\u0027s content.\n\nBug: 501111\nChange-Id: I2c9c170c61c440a2ab9c387991e7a0c3ab960e07\nSigned-off-by: Thomas Wolf \u003cthomas.wolf@paranor.ch\u003e\nSigned-off-by: Matthias Sohn \u003cmatthias.sohn@sap.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "83846ee8e9667c069edb9b0a07bd9d4f3ded170c",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties",
      "new_id": "38deab99a0d74287cc5fd7eeb754197f83870bcc",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties"
    },
    {
      "type": "modify",
      "old_id": "fdc449e06308b9ea27e77a70c04c66b8c0b11856",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java",
      "new_id": "ca4877fb34782252379c43b24bea78ec672d5168",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Merge.java"
    },
    {
      "type": "modify",
      "old_id": "991b3ba58a9acbe7d2455e4150342fc3294cf029",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java",
      "new_id": "8e49a76a33dfa78528fc75af43cea52255f50cd2",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java"
    },
    {
      "type": "modify",
      "old_id": "9dd129c335339fff0beca19dff5523acbad9829e",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java",
      "new_id": "f4f0ecd689e461937be3033550a18c17f7b1dcb8",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java"
    },
    {
      "type": "modify",
      "old_id": "8747c85dec10a9589409383aef78dbff309a6406",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java",
      "new_id": "bc4e9405eadfd51cb1234c0ead89bf4a36ad9956",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java"
    },
    {
      "type": "modify",
      "old_id": "e4af44e6f80da511407c60a63c3c02cb3c90aff4",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java",
      "new_id": "9af77aa3e8eb5a00a7511f4cec742780cbf52e72",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java"
    },
    {
      "type": "modify",
      "old_id": "f109cbf50f5a45330357f0ccbd3a90de024587b3",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java",
      "new_id": "49b31b1c4c7597f2dd251e6ed5fdb1a7b6108570",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java"
    },
    {
      "type": "modify",
      "old_id": "5d0154c6dc041a8e40a898f323ce0950814dcb90",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java",
      "new_id": "7922f9e72947ee602a34403913bdf6e5879110b8",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java"
    },
    {
      "type": "modify",
      "old_id": "d88f4ec561c4071a55d36bf895017719d5fd948d",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java",
      "new_id": "c611f915aedaa06021320725ba9d1eedb39abc8c",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/MergeCommand.java"
    },
    {
      "type": "modify",
      "old_id": "449250890c732f084909a11da57b7a12eaa147a4",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java",
      "new_id": "281ecfd011613595db2c3760d00bc2571a22aefb",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java"
    },
    {
      "type": "modify",
      "old_id": "836175dceaa07d81ab0a380eb7de7fecaf5554ed",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java",
      "new_id": "a26ffc2e66cd6876a05af9ca7fdba8e93379188d",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java"
    },
    {
      "type": "modify",
      "old_id": "56b3992fcd40632f64550ceb067754a405a890e6",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java",
      "new_id": "1004d3e50fe587a84a5d258779e46ba21f944d1e",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/api/StashApplyCommand.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6d568643d5a46c7ef3bf1c2198034b235640607d",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/merge/ContentMergeStrategy.java"
    },
    {
      "type": "modify",
      "old_id": "27141c12c4a5651a0133afbe43713dc4ec1c059c",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java",
      "new_id": "80607351ae1c24e8064778fa3840ae41b3b57322",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java"
    },
    {
      "type": "modify",
      "old_id": "b01125898145287033b5525ac63d4c850838daa3",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java",
      "new_id": "77676628679f0545693b2e9ff505d92054c987b2",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java"
    }
  ]
}
