Draft: Initial support for debcargo-conf namespaces
The .dcc.conf configuration file defines variables DCC_NS, DCC_MAIN and DCC_PENDING.
DCC_NS is the namespace of the branch. If empty it refers to the root namespace. DCC_MAIN is the base branch from which the current one was forked, e.g. master for work in progress and pending-release branches based on unstable. DCC_MAIN defaults to "${DCC_NS}/master" (no slash for the empty namespace). DCC_PENDING is the prefix of the pending- release branches, with the namespace included. It defaults to "${DCC_NS}/pending" (no slash for the empty namespace), so that the name of pending-release branches for package "$PACKAGE" is "${DCC_NS}/pending-$PACKAGE". pending-release branch names MUST contain the word 'pending' so the tooling can recognize them. Branches which are not pending-release branches MUST NOT contain the word 'pending' for the same reason.
From this commit onwards, every branch-aware script MUST source .dcc.conf either directly or via vars.sh.frag, and reference the base and pending branches using the new variables.
This commit introduces no behavioral changes for the old master and pending-* branches.
NOTE: To best test this MR you should merge it to the master branch and create a new namespace by branching it off and changing the settings in .dcc.conf. Thus I advise you test it in a fork. I tried to create a "Playground" subgroup in rust-team to host a dcc fork for this purpose, but I don't have enough privileges.