Can anyone explain how something like the following system could be brought outside of git, i.e. using version numbers instead of git's context via branches and submodules:
Let's say we have some tools that are in a project git repo. The assets are in an assets repo, and because the data - organization, naming, number of data fields, etc. - changes over time, and because the tools must also update to work against these changes, we want to make the asset repo a submodule of the project repo. This lets us do things like branch project, checkout an older version, and have the assets move back in time to match, so the tools and data stay in sync over time. This lets us, e.g., checkout everything from a week ago.
It also means we can have a crazy idea for reshaping the data to make for new abilities in a particular tool, and we can branch project, then branch assets and in the new branch in project we can check out that new branch in assets, and effectively work on everything separately. If real work comes in, we can just hop back to project's master, and the assets update to follow suit. If the crazy new data structure works out, we can branch (or reuse the first branch) and bring the other tools in line with the new data, and when all of it works, we can merge everything back, without interrupting anyone (provided interfaces haven't changed). It seems like a nice workflow, and it keeps assets separate from tools, so various departments can use them without needing a large repo of tools that don't even work on their systems, and I can pull down the tools without a huge vat of assets if I just want to work on some logic separate from the assets on my laptop.
Is there anything approaching this level of complexity and flexibility using packages and version numbers? I've never used them, but I keep feeling like I'll need to if I want to break tools out of git for distribution elsewhere, while preserving interdependencies. How do people resolve git and package version numbers? I've been studying this for awhile and I'm still quite confused by all of it.