{"push_id":581647432,"size":2,"distinct_size":2,"ref":"refs/heads/ticket_24366","head":"dfab90f68ffb6708bc0c7d464c4d5c201410cd15","before":"af12bc2161fa992b866f35c51f42349bfd89c105","commits":[{"sha":"b2f331dc68ec3c5a34285f7af9614e4178e9a371","author":{"email":"7d64dbc04187ef4ff3002b119b8edfcfccfa8892@gmail.com","name":"Tim Graham"},"message":"Updated tutorial to use explicit relative imports.","distinct":true,"url":"https://api.github.com/repos/knbk/django/commits/b2f331dc68ec3c5a34285f7af9614e4178e9a371"},{"sha":"dfab90f68ffb6708bc0c7d464c4d5c201410cd15","author":{"email":"fa5185fb0061e6d194144df7004b3b1b386ba310@gmail.com","name":"Marten Kenbeek"},"message":"Fixed #24366 -- Optimized traversal of large migration dependency graphs.\n\nSwitched from an adjancency list and uncached, iterative depth-first\nsearch to a Node-based design with direct parent/child links and a\ncached, recursive depth-first search. With this change, calculating\na migration plan for a large graph takes several seconds instead of\nseveral hours.\n\nMarked test `migrations.test_graph.GraphTests.test_dfs` as an expected\nfailure due to reaching the maximum recursion depth.","distinct":true,"url":"https://api.github.com/repos/knbk/django/commits/dfab90f68ffb6708bc0c7d464c4d5c201410cd15"}]}