)]}'
{
  "commit": "ffa237e7dbd56df2f28d45113fe0ea03337900f1",
  "tree": "04afc8c0231486d5d0ab4d0ab92ed44a20b165d1",
  "parents": [
    "4641c43a98dd291403fa776cf7ff6d5e5f5b2031"
  ],
  "author": {
    "name": "Christian Halstrick",
    "email": "christian.halstrick@sap.com",
    "time": "Wed May 18 15:03:51 2016 +0200"
  },
  "committer": {
    "name": "Matthias Sohn",
    "email": "matthias.sohn@sap.com",
    "time": "Mon May 23 15:39:04 2016 +0200"
  },
  "message": "Fix computation of id in WorkingTreeIterator with autocrlf and smudging\n\nJGit failed to do checkouts when the index contained smudged entries and\nautocrlf was on. In such cases the WorkingTreeIterator calculated the\nSHA1 sometimes on content which was not correctly filtered. The SHA1 was\ncomputed on content which two times went through a lf-\u003ecrlf conversion.\n\nWe used to tell the treewalk whether it is a checkin or checkout\noperation and always use the related filters when reading any content.\nIf on windows and autocrlf is true and we do a checkout operation then\nwe always used a lf-\u003ecrlf conversion on any text content. That\u0027s not\ncorrect. Even during a checkout we sometimes need the crlf-\u003elf\nconversion. E.g. when calculating the content-id for working-tree\ncontent we need to use crlf-\u003elf filtering although the overall operation\ntype is checkout.\n\nOften this bug does not have effects because we seldom compute the\ncontent-id of filesystem content during a checkout. But we do need to\nknow whether a file is dirty or not before we overwrite it during a\ncheckout. And if the index entries are smudged we don\u0027t trust the index\nand compute filesystem-content-sha1\u0027s explicitly.\n\nThis caused EGit not to be able to switch branches anymore on Windows\nwhen autocrlf was true. EGit denied the checkout because it thought\nworkingtree files are dirty because content-sha1 are computed on wrongly\nfiltered content.\n\nBug: 493360\nChange-Id: I1072a57b4c529ba3aaa50b7b02d2b816bb64a9b8\nSigned-off-by: Matthias Sohn \u003cmatthias.sohn@sap.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5dd8da57c21d79dbe3dd8698884f7bc1c541a0fe",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/EolRepositoryTest.java",
      "new_id": "5f10131750404ced2139b4b11359635d113644ba",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/api/EolRepositoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "501d6767350db364ffcc21797bca8ed1d73a1f0a",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java",
      "new_id": "7dac50a89a9aad2f398b467f20d965921f2981c3",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java"
    },
    {
      "type": "modify",
      "old_id": "39176c621eaceb6c8e6f909cba967cf1ee385170",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java",
      "new_id": "c8de3de83c0caedd895bae8e6fc24f70fd01fe2e",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java"
    }
  ]
}
