I've had some thoughts about how to restructure how we specify revisions in cstar_perf. Right now, you can specify any git reference. This is convenient, because the syntax is well understood by anyone familiar with git. However, there's some limitations:
Because you can specify any git reference, it means we need to check out every single developer branch and keep it up to date at all times. This is what fab_cassandra.py/fab_common.py does today.
This means that every repository is hard coded into fab_cassandra.py and you can't use any repository outside of that without editing and redeploying the client.
Since we are already trusting our authenticated users to be non-malicious, I think we should open this up a bit more, and allow any user to specify any github branch of cassandra to run on cstar_perf. However, this means we need to make a few changes.
You will need to always specify the repository name. For example, instead of specifying SHA "6d3617dd5eaf3" you would need to specify "apache/6d3617dd5eaf3" or "tjake/6d3617dd5eaf3".
Do the same for tags, as tags may exist on any repository, this removes ambiguity.
With this change I would propose we get rid of the monolithic ~/fab/cassandra.git directory, and instead maintain a separate git clone per repository tested. The clone would only be created/updated when a test specifically calls it out to be tested.
belliottsmith/cassandra/10220 - Same as above, but the cassandra repository name is explicit here. I can't think of an example where someone is testing from a repository named something else, but it would be good to cover our bases here.
belliotsmith/6d3617dd5ea
belliotsmith/cassandra-3.0.0-tentative - This shows that what comes after the last '/' is just a git reference. It can be a tag, branch, or SHA
cassandra-3.0.0-rc1 - Since this specified no repository, we assume this is from the apache one.
6d3617dd5ea - Some random sha, without a repository, we assume this is from the apache one.
I've had some thoughts about how to restructure how we specify revisions in cstar_perf. Right now, you can specify any git reference. This is convenient, because the syntax is well understood by anyone familiar with git. However, there's some limitations:
Since we are already trusting our authenticated users to be non-malicious, I think we should open this up a bit more, and allow any user to specify any github branch of cassandra to run on cstar_perf. However, this means we need to make a few changes.
With this change I would propose we get rid of the monolithic ~/fab/cassandra.git directory, and instead maintain a separate git clone per repository tested. The clone would only be created/updated when a test specifically calls it out to be tested.
Examples of valid references in this new model: