)]}'
{
  "commit": "89143ac28a61578487af7324c653a9efa5e40034",
  "tree": "149cba5b6bfcef8adef542d19814ca433b069b3a",
  "parents": [
    "088131273b7e781174eb1cffb7d4e0eb51066cba"
  ],
  "author": {
    "name": "Luke Diamand",
    "email": "luke@diamand.org",
    "time": "Mon Oct 15 12:14:08 2018 +0100"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Tue Oct 16 13:28:49 2018 +0900"
  },
  "message": "git-p4: fully support unshelving changelists\n\nThe previous git-p4 unshelve support would check for changes\nin Perforce to the files being unshelved since the original\nshelve, and would complain if any were found.\n\nThis was to ensure that the user wouldn\u0027t end up with both the\nshelved change delta, and some deltas from other changes in their\ngit commit.\n\ne.g. given fileA:\n      the\n      quick\n      brown\n      fox\n\n  change1: s/the/The/   \u003c- p4 shelve this change\n  change2: s/fox/Fox/   \u003c- p4 submit this change\n  git p4 unshelve 1     \u003c- FAIL\n\nThis change teaches the P4Unshelve class to always create a parent\ncommit which matches the P4 tree (for the files being unshelved) at\nthe point prior to the P4 shelve being created (which is reported\nin the p4 description for a shelved changelist).\n\nThat then means git-p4 can always create a git commit matching the\nP4 shelve that was originally created, without any extra deltas.\n\nThe user might still need to use the --origin option though - there\nis no way for git-p4 to work out the versions of all of the other\n*unchanged* files in the shelve, since this information is not recorded\nby Perforce.\n\nAdditionally this fixes handling of shelved \u0027move\u0027 operations.\n\nSigned-off-by: Luke Diamand \u003cluke@diamand.org\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6c0017e36eb1a9e30558a1043f598ad2734c1fca",
      "old_mode": 33188,
      "old_path": "Documentation/git-p4.txt",
      "new_id": "f0a0280954f18532a1f12d4e5e6cae094c778784",
      "new_mode": 33188,
      "new_path": "Documentation/git-p4.txt"
    },
    {
      "type": "modify",
      "old_id": "76c18a22e962b9953498bb0b3c790d9550777b0c",
      "old_mode": 33261,
      "old_path": "git-p4.py",
      "new_id": "1998c3e141bec5142032f08623b916d7741e64ac",
      "new_mode": 33261,
      "new_path": "git-p4.py"
    },
    {
      "type": "modify",
      "old_id": "c3d15ceea8b05e10dccb424458f8edf746297275",
      "old_mode": 33261,
      "old_path": "t/t9832-unshelve.sh",
      "new_id": "41c09f11f4bf44ece085f952e8782d4dfe3fd169",
      "new_mode": 33261,
      "new_path": "t/t9832-unshelve.sh"
    }
  ]
}
