)]}'
{
  "commit": "5edba59c5da3946095004acfab62933c7b32010f",
  "tree": "85b1e59b2f4e88d6dd6c4dbb379d34749988a858",
  "parents": [
    "7946a5fd25edd32027141d512031f96e94ff8fbd"
  ],
  "author": {
    "name": "Johan Corveleyn",
    "email": "jcorvel@apache.org",
    "time": "Mon Nov 29 00:06:08 2010 +0000"
  },
  "committer": {
    "name": "Johan Corveleyn",
    "email": "jcorvel@apache.org",
    "time": "Mon Nov 29 00:06:08 2010 +0000"
  },
  "message": "On the diff-optimizations-tokens branch:\n\nAdd skeleton implementation of suffix scanning.\n\nGetting tokens backwards (datasource_get_previous_token), and pushing back\nsuffix tokens (token_pushback_suffix), are still stub implementations, which\nwill be added in a follow up commit.\n\n* subversion/include/svn_diff.h\n  (svn_diff_fns_t): Add new function types datasource_get_previous_token and\n   token_pushback_suffix. Add parameter open_at_end to datasource_open.\n\n* subversion/libsvn_diff/diff_file.c\n  (datasource_get_previous_token): New function, stub implementation.\n  (token_pushback_suffix): New function, stub implementation.\n  (datasource_open): Add parameter open_at_end. Add implementation to open the\n   datasource at the end (read last chunk, point curp to the last byte). Make\n   sure the actual file is only opened if hasn\u0027t been opened yet, so this\n   function can be reused to jump to the end or the beginning of the file\n   at will. While we are at it, remove local variables curp and endp, since\n   they aren\u0027t needed anymore.\n\n* subversion/libsvn_diff/diff_memory.c\n  (datasource_get_previous_token): New function, stub implementation.\n  (token_pushback_suffix): New function, stub implementation.\n  (datasource_open): Add parameter open_at_end.\n\n* subversion/libsvn_diff/token.c\n  (svn_diff__get_tokens): Pass FALSE for parameter open_at_end to\n   datasource_open, for backwards compatibility.\n  (find_identical_suffix): New function.\n  (find_identical_prefix): Remove parameter reached_one_eof, and convert it to\n   a local variable, since it doesn\u0027t need to be returned anymore.\n  (svn_diff__get_all_tokens): Add call to find_identical_suffix, before\n   calling find_identical_prefix, and call datasource_open in between to\n   reposition the datasource at the end and the start respectively.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/subversion/branches/diff-optimizations-tokens@1039986 13f79535-47bb-0310-9956-ffa450edef68\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "98481ab087d38fd755d1dc1eec6fd14427e3440c",
      "old_mode": 33188,
      "old_path": "subversion/include/svn_diff.h",
      "new_id": "ac9dbafe962e67a929b6e8de55775411983af584",
      "new_mode": 33188,
      "new_path": "subversion/include/svn_diff.h"
    },
    {
      "type": "modify",
      "old_id": "9b3a01165796e391db72aeb70189685c8e2a6271",
      "old_mode": 33188,
      "old_path": "subversion/libsvn_diff/diff_file.c",
      "new_id": "776a74a59b19f94b3a05e6e9ad92a031423f5f69",
      "new_mode": 33188,
      "new_path": "subversion/libsvn_diff/diff_file.c"
    },
    {
      "type": "modify",
      "old_id": "35bc734d8ae1916b978139179b1cb077eace19d6",
      "old_mode": 33188,
      "old_path": "subversion/libsvn_diff/diff_memory.c",
      "new_id": "e32af32d8897d5038ac522511971809d1a361967",
      "new_mode": 33188,
      "new_path": "subversion/libsvn_diff/diff_memory.c"
    },
    {
      "type": "modify",
      "old_id": "d87b185e5757f6f0c051e6fda64f389e059cb325",
      "old_mode": 33188,
      "old_path": "subversion/libsvn_diff/token.c",
      "new_id": "381950dbd7e4a2a5b533c56d055f255163b87992",
      "new_mode": 33188,
      "new_path": "subversion/libsvn_diff/token.c"
    }
  ]
}
