Understanding And Identifying Large-Scale Adaptive Changes From Version Histories