RiotGamesMinions / thor-scmversion

Thor tasks to manage a VERSION file based on SCM tags
MIT License
58 stars 22 forks source link

Speed up tags lookup #44

Open mrdziuban opened 8 years ago

mrdziuban commented 8 years ago

For repositories with a large number of tags, the call to all_from_path can take a significant amount of time, because it gets all tags, then checks to see if all of them are contained_in_current_branch?.

Here's an example of a repository with 234 tags that all match the version format regex. Before these changes, the checks to contained_in_current_branch? took ~10 seconds:

screen shot 2016-03-10 at 11 00 22 am

After these changes, the lookup took 0.05 seconds, because it only had to call contained_in_current_branch? once:

screen shot 2016-03-10 at 11 00 40 am

I don't have enough knowledge of p4 to implement a similar change in P4Version, so I just have it calling all_from_path(path).first for now.