ide-probe
ide-probe copied to clipboard
Resolve duplication regarding Git setups
We have at least 3 places that refer to git that I recall:
- Setting workspace from git
- Fetching pants from git (in pants plugin repo)
- Fetching a plugin from git sources to build it
Some of these only allow to specify uri and optionally branch, some also allow for tag or commit. They all are used from .conf files. I think all of them are part of broader ADT.
It would be really useful to have just one GitReference
class/trait with variants to specify tag, branch, ref or anything relevant for fetching some revision of source, and also to have a robust method to clone it, cache it and setup in some place (as we have it implemented separately for each of these cases).
This refactoring will not only cleanup the code, enable commit cloning in case of building plugins from sources but also make it easy to setup custom configuratble actions in fixtures that use git (like setting up pants from sources).