A number of changes were necessary for this checkin:
1. The repository still contains support for TFS pbuild under
the TFS branch (git support is in master branch). Since we
don't anticipate a lot of ongoing work for TFS version of
pbuild, this is probably fine.
2. Renamed concept of "branch" in TFS version to "selector" (to
select the hosts to build). This frees the concept of "branch",
which now coincides with the git concept of a branch. Note that
this represented an incompatible change in .pbuild, so you'll
need separate .pbuild files for tfs and git.
3. Removed support to start the tfprox server, since git doesn't
need that or care about it.
4. Added to project definition: cloneSource (where the repository
can be cloned from). Removed: cleanPaths, cleanList, and
dependentProjects. We depend on git itself to get things to a
clean state.
5. Heavily modified the README file and converted to README.md.
6. Removed option LogFileBranch, added option LogFileSelect to
replace it. Same function, name change only.
7. Removed --branch from TFS version, this referred to TFS function.
8. Added --branch to select branch of parent/superproject.
9. Added --subproject to select list of subproject:branch pairs.
Important note: The .pbuild file is no longer compatible between
TFS and git. Such is life. If you still (routinely) require TFS,
then you'll need multiple .pbuild files (one for TFS, one for git),
and select which one via environment variable.
This rips out all of the project-specific build instructions and
creates one generic build mechanism. There are some assumptions here:
1. The project must support 'make distclean' (make distclean can be
aliased to make clean by the project build scripts),
2. The project must support ./configure (in the build directory) to
configure itself, and configure must support --enable-debug for debug
builds
If that's all true, then PBUILD can trivially be modified to support
any new project by a simple new class definition within project.py (to
define the specifics of a project).