Some repositories branch in file name space (p4, vss), others in
revision number space (cvs). Those that branch in revision space have
an inherent concept of a files main branch in its revision number,
while those that branch in name space do not have an inherent idea of
the main branch of a file that can be discerned without going back and
checking the first revision of each file. In other words, these
repositories always have a branch_id, event for the main branch of
Its up to the destination repository to track which branch of each file
it considers to be the main development branch.
Note that "" is a perfectly valid branch_id that often indicates the
main development branch. This is SCM (and VCP::Source::*) specific,
but occurs in cvs and is expected to occur in any SCMs that branch in
revision space and have the empty prefix as the branch prefix for the
main development branch.
NOTE: unlike RevMapDB and HeadRevsDB, this DB is not modelling
information per source repository; it is modelling information per
destination repository. So the key is destination-side and does not
include the source_repo_id.
TODO: allow the user to indicate this using a VCP::Filter::* module.