)]}'
{
  "commit": "6a38e33331560c3e84123c567f95de72d1cfa506",
  "tree": "4a6e70ac59f4019281af3e50dd4fcd70ae61cf06",
  "parents": [
    "f5bfcc823ba242a46e20fb6f71c9fbf7ebb222fe"
  ],
  "author": {
    "name": "Jonathan Nieder",
    "email": "jrnieder@gmail.com",
    "time": "Thu Aug 05 18:45:23 2021 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Aug 09 13:52:01 2021 -0700"
  },
  "message": "Revert \u0027diff-merges: let \"-m\" imply \"-p\"\u0027\n\nThis reverts commit f5bfcc823ba242a46e20fb6f71c9fbf7ebb222fe, which\nmade \"git log -m\" imply \"--patch\" by default.  The logic was that\n\"-m\", which makes diff generation for merges perform a diff against\neach parent, has no use unless I am viewing the diff, so we could save\nthe user some typing by turning on display of the resulting diff\nautomatically.  That wasn\u0027t expected to adversely affect scripts\nbecause scripts would either be using a command like \"git diff-tree\"\nthat already emits diffs by default or would be combining -m with a\ndiff generation option such as --name-status.  By saving typing for\ninteractive use without adversely affecting scripts in the wild, it\nwould be a pure improvement.\n\nThe problem is that although diff generation options are only relevant\nfor the displayed diff, a script author can imagine them affecting\npath limiting.  For example, I might run\n\n\tgit log -w --format\u003d%H -- README\n\nhoping to list commits that edited README, excluding whitespace-only\nchanges.  In fact, a whitespace-only change is not TREESAME so the use\nof -w here has no effect (since we don\u0027t apply these diff generation\nflags to the diff_options struct rev_info::pruning used for this\npurpose), but the documentation suggests that it should work\n\n\tSuppose you specified foo as the \u003cpaths\u003e. We shall call\n\tcommits that modify foo !TREESAME, and the rest TREESAME. (In\n\ta diff filtered for foo, they look different and equal,\n\trespectively.)\n\nand a script author who has not tested whitespace-only changes\nwouldn\u0027t notice.\n\nSimilarly, a script author could include\n\n\tgit log -m --first-parent --format\u003d%H -- README\n\nto filter the first-parent history for commits that modified README.\nThe -m is a no-op but it reflects the script author\u0027s intent.  For\nexample, until 1e20a407fe2 (stash list: stop passing \"-m\" to \"git\nlog\", 2021-05-21), \"git stash list\" did this.\n\nAs a result, we can\u0027t safely change \"-m\" to imply \"-p\" without fear of\nbreaking such scripts.  Restore the previous behavior.\n\nNoticed because Rust\u0027s src/bootstrap/bootstrap.py made use of this\nsame construct: https://github.com/rust-lang/rust/pull/87513.  That\nscript has been updated to omit the unnecessary \"-m\" option, but we\ncan expect other scripts in the wild to have similar expectations.\n\nSigned-off-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2825783049c51019bab9d5d20507705d331684cc",
      "old_mode": 33188,
      "old_path": "Documentation/diff-options.txt",
      "new_id": "6d968b9012dcbe56b616f9edd66b1e869d09e2ae",
      "new_mode": 33188,
      "new_path": "Documentation/diff-options.txt"
    },
    {
      "type": "modify",
      "old_id": "0dfcaa1b11b06c456b9b2349859255602df647e8",
      "old_mode": 33188,
      "old_path": "diff-merges.c",
      "new_id": "d897fd8a293319b34172c5c816d28ffb37ad7ce9",
      "new_mode": 33188,
      "new_path": "diff-merges.c"
    },
    {
      "type": "modify",
      "old_id": "7fadc985cccd0558be4e4114434f143605e710a4",
      "old_mode": 33261,
      "old_path": "t/t4013-diff-various.sh",
      "new_id": "e561a8e48521a022ea90891f96d1054cf1ecc68d",
      "new_mode": 33261,
      "new_path": "t/t4013-diff-various.sh"
    }
  ]
}
