)]}'
{
  "commit": "6b1e3c58b16651dc72ec79a614d507e014d18393",
  "tree": "4e3d3fb306a70c46cc402a451a79c17e32181a70",
  "parents": [
    "f17ec3928c45d7f5170e92b4e0e1f7390de5fff2"
  ],
  "author": {
    "name": "David Turner",
    "email": "dturner@twosigma.com",
    "time": "Wed Feb 08 15:07:18 2017 -0500"
  },
  "committer": {
    "name": "Matthias Sohn",
    "email": "matthias.sohn@sap.com",
    "time": "Tue Jun 06 01:18:29 2017 +0200"
  },
  "message": "Run auto GC in the background\n\nWhen running an automatic GC on a FileRepository, when the caller\npasses a NullProgressMonitor, run the GC in a background thread. Use a\nthread pool of size 1 to limit the number of background threads spawned\nfor background gc in the same application. In the next minor release we\ncan make the thread pool configurable.\n\nIn some cases, the auto GC limit is lower than the true number of\nunreachable loose objects, so auto GC will run after every (e.g) fetch\noperation.  This leads to the appearance of poor fetch performance.\nSince these GCs will never make progress (until either the objects\nbecome referenced, or the two week timeout expires), blocking on them\nsimply reduces throughput.\n\nIn the event that an auto GC would make progress, it\u0027s still OK if it\nruns in the background. The progress will still happen.\n\nThis matches the behavior of regular git.\n\nGit (and now jgit) uses the lock file for gc.log to prevent simultaneous\nruns of background gc. Further, it writes errors to gc.log, and won\u0027t\nrun background gc if that file is present and recent. If gc.log is too\nold (according to the config gc.logexpiry), it will be ignored.\n\nChange-Id: I3870cadb4a0a6763feff252e6eaef99f4aa8d0df\nSigned-off-by: David Turner \u003cdturner@twosigma.com\u003e\nSigned-off-by: Matthias Sohn \u003cmatthias.sohn@sap.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "933faf9bfaf0d12a4ae1d193953a710d131f63ae",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java",
      "new_id": "6ace9fc1221690814fc89480108dba1da272407a",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "c43accdb6fb6dc23059e234af7d62f3e5310a7f5",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java",
      "new_id": "0ce645139de72545ec743e02894b655699cdb53d",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ConfigTest.java"
    },
    {
      "type": "modify",
      "old_id": "64412323630ab36f8af1173728c14f14c95ffc81",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/.settings/.api_filters",
      "new_id": "822f1215d5afb39defa0d64b3aab6ec06e74ed3f",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/.settings/.api_filters"
    },
    {
      "type": "modify",
      "old_id": "4ac399f9ec0e39b1075fec9ea1b4e1c28f07f75e",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties",
      "new_id": "03065da8ada8f886e374e6d4e4d2d0eaf16a1b47",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties"
    },
    {
      "type": "modify",
      "old_id": "a81c93a013b628662522814a8ab4fef5efc01954",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java",
      "new_id": "32bfb7e57953b807a2faf78967b9d663af9d9824",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java"
    },
    {
      "type": "modify",
      "old_id": "ba52251a4cc0ad1aab61302fa81250e5168fbe16",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java",
      "new_id": "ef9aa37d0633e6388913c2102ae6463e60264f76",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java"
    },
    {
      "type": "modify",
      "old_id": "c68e5f7f3d75be11c120268238c1a9669933d981",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java",
      "new_id": "e1b309da6475c26d8cc2500d55be4d301834c836",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ea77cc7dbc8dbf27b712b09d181b6bedc90250f",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GcLog.java"
    },
    {
      "type": "modify",
      "old_id": "74fc7067a1401aed4a991c5a862d6222b4d8db08",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java",
      "new_id": "189361b709f40c118ee9b33e35dcb78b4cf37e4e",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java"
    }
  ]
}
