We have a web project located in a main repository. It contains our actual product code. Main also contains various back-end tests.
We are starting on UI tests for the main project. These are browser-based tests that run various operations on the product code. It may or may not be relevant that we are using Selenium for that. As of now, the UI tests are in a separate repository. Let's call it the UiTest repository.
One can imagine running the UI tests in all sorts of different configurations. Examples include locally, pointed at a staging website, or as part of an automated build.
Not every version of the tests will be compatible with every version of the main repository. For example, a version of the tests may require certain ids on elements found on a webpage. For another example, if the main code is changed, the tests may need to be changed also. The old tests may not work with the new code, and the new tests may not work with the old code.
I'm thinking it might make sense to have a way to checkout particular versions of the two repositories with a single command. However, looking around on the web, there seems to be a lot of hate out there for git submodules. And I'm unclear whether or not it makes sense to force the main and UiTest repositories to both be children of the same parent folder.
As of now, I'm wondering if there is a simple way to note pairs of commits of different repositories that are compatible with each other, and a simple way to checkout such a commit pair with a single command. Lightweight is good.