)]}'
{
  "commit": "10e65cb4faf943d4a2a782ceef6f0f09934b150b",
  "tree": "d3bb1a9c34bd017ae043b923b4a72ce476dc580d",
  "parents": [
    "218cf3403de512f564aa74f18de56c97dd7852b4"
  ],
  "author": {
    "name": "Christian Halstrick",
    "email": "christian.halstrick@sap.com",
    "time": "Tue Nov 14 17:08:56 2017 +0100"
  },
  "committer": {
    "name": "Christian Halstrick",
    "email": "christian.halstrick@sap.com",
    "time": "Wed Nov 22 18:15:11 2017 +0100"
  },
  "message": "Fix LockFile semantics when running on NFS\n\nWhen running on NFS there was a chance that JGits LockFile\nsemantic is broken because File#createNewFile() may allow\nmultiple clients to create the same file in parallel. This\nchange provides a fix which is only used when the new config\noption core.supportsAtomicCreateNewFile is set to false. The\ndefault for this option is true. This option can only be set in the\nglobal or the system config file. The repository config file is not\ntaken into account in this case.\n\nIf the config option core.supportsAtomicCreateNewFile is true\nthen File#createNewFile() is trusted and the behaviour doesn\u0027t\nchange.\n\nBut if core.supportsAtomicCreateNewFile is set to false then after\nsuccessful creation of the lock file a hardlink to that lock file is\ncreated and the attribute nlink of the lock file is checked to be 2. If\nmultiple clients manage to create the same lock file nlink would be\ngreater than 2 showing the error.\n\nThis expensive workaround is described in\n https://www.time-travellers.org/shane/papers/NFS_considered_harmful.html\nsection III.d) \"Exclusive File Creation\"\n\nChange-Id: I3d2cc48d8eb280d5f7039eb94da37804f903be6a\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c27b051b0e6cd56d38878b3cba2a0c7aa18c626",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/.settings/.api_filters",
      "new_id": "38305634959fc994257c74ec2e8aadc509d35cf1",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/.settings/.api_filters"
    },
    {
      "type": "modify",
      "old_id": "ce9677a62da09496512d60c56ccf4f02a35766fd",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java",
      "new_id": "51af67e0bd8e235521dc3c3445704ca3ca0bdeba",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java"
    },
    {
      "type": "modify",
      "old_id": "9e3e0b78fde45b912235526ab030b9294423407a",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java",
      "new_id": "e3f8ba5b5b4f2bf55086df85788d359d3ed4bbc6",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java"
    },
    {
      "type": "modify",
      "old_id": "a55b5c0ac5a61ee566ba896160959dd1dd411f5d",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java",
      "new_id": "e1fd1cb8899a382c7a03a0cfb4e370eccdd91648",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java"
    },
    {
      "type": "modify",
      "old_id": "cb4868cc7aff1e45d2c99099868c47b6dc8e881c",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java",
      "new_id": "4ecaf9c8eeed15cff244bcf382ba9ff3a7933781",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java"
    }
  ]
}
