)]}'
{
  "commit": "cba2a678a12bad4d58eadf48c3a75efb6e1fa094",
  "tree": "ffed86612e9f0ea804abab39f2c582507923b464",
  "parents": [
    "70b98e25e1ff28064d3301306098a33949463f10"
  ],
  "author": {
    "name": "Sam Elliott",
    "email": "selliott@lowrisc.org",
    "time": "Tue May 12 17:33:06 2020 +0100"
  },
  "committer": {
    "name": "Philipp Wagner",
    "email": "mail@philipp-wagner.com",
    "time": "Wed May 20 23:12:42 2020 +0100"
  },
  "message": "[util] Fix Vendor Reset Revision\n\nThe vendor tool can fail if you try to `git-reset` to a branch that does\nnot exist.\n\nWhen cloning a repository to create patches, we almost always need to\ncheck out a branch or revision that is not `master`, but cloning a repo\nonly creates the `master` branch, so the `git-reset` can fail if given\nan upstream branch name (which doesn\u0027t yet exist in the clone).\n\nOne issue we have is that we want to be able to pass either an upstream\nbranch name or a git revision sha, and we don\u0027t know which we have\n(because they use the same key in the configuration). If we use\n`git-checkout` instead of `git-reset`, then the checkout operation will\ncreate a local branch that matches the upstream branch of the same name\n(if given a branch name), or will checkout a git revision sha if given\na sha.\n\nThis is the most minimal change that we can do, and means the vendor\ntool does not have to guess when it should add the upstream prefix to\nthe branch name.\n\nThis ensures that the clone operation will not fail when refreshing\npatches, but also if a non-master branch is specified in the vendor\nconfiguration.\n\nSigned-off-by: Sam Elliott \u003cselliott@lowrisc.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2a0bcb4cc5480563e7214a0edc014d0bbe980ffe",
      "old_mode": 33261,
      "old_path": "util/vendor.py",
      "new_id": "e2fb818385904e832b1f08252de24c7177d91b4f",
      "new_mode": 33261,
      "new_path": "util/vendor.py"
    }
  ]
}
