Improvements of project v2 support:
- project-init for projects V2 should work in the existing branches to simplify migration process. (Bug #557089)
- project-commit in project v2 should not create snapshot for subproject v1. (Bug #563807)
- project-init creates empty snapshot file so it gets the file-id from the beginning of the project life. Therefore it's less likely user will have file-id conflict while merging two branches of the same project. (Bug #563941)
- New command project-add should help to add new components/subprojects quickly without manual editing of project.cfg. (Bug #313655)
- New command project-branch helps to change component origin to new URL. The command does set new URL in project.cfg and also update parent/push settings in branch.conf. You can use flag --push to create/update new origin, or --pull to update local branch from new origin.
- Validating names of components and subprojects. Now incorrect names will raise "Bad component name in section xxx" error, instead of silently ignoring them. (Bug #458937)
New features:
- Project v2: new layout of the control branch: toplevel branch of each project and subproject should have .bzrmeta/scmproj/project.cfg file with project config. No more separate .scmproj control branch needed.
- Project v2 is now default one. Old projects are still supported in all operations except project-init, so you can't create old project anymore with project-init command.
- Config files for projects v2 have the same format as before, but alts and subsets are not supported in v2.
- project-command for project v2 now executes actions for control branch as well as component branches.
- Support for snapshots:
- project-commit creates snapshots for main project and all subprojects.
- project-get uses snapshots for main project and subprojects as well.
- added option --revision for command project-get to allow clone of specified revision of main project root branch (with snapshots) and get other components and subprojects based on the snapshot of main root branch.
- project-update command uses snapshot information to update root branches of subprojects, as well as plain components.
- added option --revision for command project-update to allow update the toplevel branch of the project to specified revision and then update all components and subprojects based on the snapshot of that revision. Limitation: for update bzr pull command used under the hood, so it's not possible to update branches to older revisions (either for toplevel branch, component branches, or root subproject branches).
Improvements:
- Improved support for executing project commands (update, commit, push) in subprojects recursively.
Deprecated features:
Hidden command chdir deprecated now, and will be removed in the next release.
- project-get: several options marked as deprecated:
- --control-branch-only
- --components-only
- --alt
- --subset
- --full-set
project-update: option --components-only marked as deprecated.
- project-publish: several options marked as deprecated:
- --alt
- --components-only
- --subset
- --full-set
- project-command: several options marked as deprecated:
- --alt
- --subset
- --full-set
- project-commit: several options marked as deprecated:
- --components-only
- --subset
- --full-set
- pcmd/pup/pback: --different-tips condition also checks for tags difference. Ditto for --equal-tips. (Bug #506428)
- pback (project-publish): is local and remote branch has no difference in revision history but local branch has uncommitted changes we need to run push anyway so builtin push will have a chance to catch this in --strict mode.
- pcmd: if chdir to component tree directory failed then assume there is no component tree yet, and simply skip this component.
- pcmd: added list options --include (-i) and --exclude (-x) to control list of components for which command should be executed.
- pcmd: option --select XXX allows to run command only for components which conforms to some status. Supported variants: all, changed, unchanged, different-tips, equal-tips. By default run command for all components. (Bug #497802)
- project-update and project-publish commands run actual command only if local branch and origin branch are different (roughly as pcmd --select different-tips).
- project-commit command now uses generic check for changes in components, similar to pcmd --select changed.
- project-update and project-publish commands now have --all command-line option to force execute action for all components without checking branches for difference.
New features:
- Subprojects simplified implementation (without variants support and read-only flag).
- project-publish --no-strict can be used to invoke push --no-strict for components trees. (Bug #474799)
- project-command --dry-run will show what would be done, but don't actually do anything. It's better to use with option --verbose.
- project-info now shows the info on components and subprojects. (Bug #313166)
- project-command --shell can run shell commands for each component instead of bzr ones. (Bug #349069)
- project-command --varN XXX: new command-line options --var1, --var2 and --var3 allows user to specify additional template variables for substitution in commands templates. (Bug #489722)
- commands to work with local project now possible to invoke from subdirectory and not only from project root. (Bug #313150)
Compatibility breaks:
- Removed support for boxed workspaces.
- No more pretend that we can suport any vcs other than bzr. Now config with VCS option set to other vcs will raise error.
Maintenance release.
- fixed problem of cloning .scmproj when it's repository tree in shared repository. (#458914, Alexander Belchenko with help of Vincent Ladeuil)
Changelog:
- project.cfg should be in utf-8 encoding
- 3 ways for project-get: get everything, only control branch, get component branches when there is control branch
- new command project-publish: push component branches to their origins, also push control branch
- project-commit can commit to control branch (.scmproj)
- project-update: new command to update component branches (pull from origins)
- plain workspace by default
- .scmproj/.bzr/branch/branch.conf is used as local config
- pinfo does not require LOCATION argument
2009/02/14 - v.0.4.5a1 micro-release
- Small improvements.
2009/02/09 - v.0.4.5dev1
- New layout of control dir.
2009/01/22 - v.0.4.5dev0
- New config format.