I am looking for a version control system which has a specific feature, that I'm not sure what to call besides "layered". Essentially what I am looking for is to have a "primary" project "A". Let's say it has a directory structure like this:
A/
|
+-config/
|
+-src/
|
+-data/
A is where the most of the code is, but I don't want to deploy A
, A
is more of a template for what I really want to deploy... So I want to have a project B
, which has the contents of A
(should be read-only), but overlayed with my local stuff such as configurations and data specific to B
.
This way, I can make changes in A
, then "update" in B
which would pull in the changes to the core, but not be effected by the project specific tweaks.
If config
and data
were empty, I could just omit them from A and play games with symlinks and such, but I do want them to be able to hold some core config and data files as well.
Is there a version control system which supports this type of thing? If so, how does it work?