scmproj - Organize branches into a unified project

Version 0.6.0dev
Branch lp:bzr-scmproj
Home page https://launchpad.net/bzr-scmproj
Owner bialix
GNU/Linux Yes
Windows Yes
Mac OS X Yes

Organise and manage a collection of bzr branches as a complex project.

Here is a summary of the commands added.

Command Description
project-init Initialize new project meta-directory
project-get Get a copy of an existing project on your local disk
project-commit Commit changes in components working copies
project-info Show info summary for project
project-update Update components of the project from their origins
project-publish Publish (push back) changes from components branches and control branch
project-command Run some command(s) for project components

For tutorials, developer documentation and comparisons with other systems, see http://bialix.com/scmproj/docs/.

project-command

Purpose

Run some command(s) for project components.

Usage

bzr project-command COMMAND...

Options

--subset=ARG Run command for specified subset.
--full-set Run command for all components.
-C, --cd-relpath
 Cd to component working directory before executing commands.
--dry-run Show what would be done, but don’t actually do anything.
-v, --verbose Display more information.
--var3=ARG Additional template variable {var3}.
-E, --ignore-errors
 Don’t stop on user errors.
--var2=ARG Additional template variable {var2}.
-q, --quiet Only display errors and warnings.
-s, --shell Run shell commands instead of bzr commands.
-x ARG, --exclude=ARG
 Don’t run command for specified components.
--usage Show usage message and options.
--var1=ARG Additional template variable {var1}.
--alt=ALT Run command for specified alt.
-i ARG, --include=ARG
 Run command only for specified components.
-h, --help Show help message.

Description

Note

Run this command from the root of local project copy.

Option –cd-relpath (-C) will force execution of command(s) in the components working directories. It’s equal to have “cd {RELPATH}” prefixed to each command. This is default behavior. If you need to suppress automatic directory change, please use –no-cd option.

If you want to check the actual commands and its arguments for every component without actually invoking these commands, then you may run with options –dry-run and –verbose (-v), e.g:

bzr pcmd -v --dry-run "missing {BRANCH_URL}"

Aliases

pcmd, prun, pcommand

See also

chdir

project-commit

Purpose

Commit changes in components working copies.

Usage

bzr project-commit [COMPONENT...]

Options

--subset=ARG Commit components of specified subset.
--full-set Commit all components.
-v, --verbose Display more information.
--components-only
 Commit only changes in components.
-q, --quiet Only display errors and warnings.
-F MSGFILE, --file=MSGFILE
 Take commit message from this file.
--usage Show usage message and options.
-m ARG, --message=ARG
 Commit message.
-h, --help Show help message.

Aliases

pci, pcommit

project-get

Purpose

Get a copy of an existing project on your local disk.

Usage

bzr project-get [FROM_LOCATION] [TO_LOCATION]

Options

--subset=ARG Get components of the specified subset.
--full-set Get all components.
-v, --verbose Display more information.
--control-branch-only
 Only get the control branch (i.e. don’t get the component branches).
-q, --quiet Only display errors and warnings.
--components-only
 Only get the component branches (when the control branch is already present).
--usage Show usage message and options.
--alt=ARG Get branches for the specified alt.
-h, --help Show help message.

Description

This will make a new project dir with a .scmproj control branch inside, and/or get component branches of the project.

FROM_LOCATION may refer to a local project dir or a remote scmproj control branch. If the TO_LOCATION is omitted, the last component of the FROM_LOCATION will be used. In other words, “project-get ../my/proj” will attempt to create ./proj.

To get both project control branch and component branches use command without –control-branch-only option:

bzr project-get FROM_LOCATION [TO_LOCATION]

To get only control branch of the project use command as:

bzr project-get --control-branch-only FROM_LOCATION [TO_LOCATION]

When you already have a local copy of a project with a control branch but without its components, and want to get component branches, then run this command from project root directory:

bzr project-get --components-only

Use other options (–alt, –subset) when necessary.

Aliases

pget

project-info

Purpose

Show info summary for project.

Usage

bzr project-info [LOCATION]

Options

--usage Show usage message and options.
-v, --verbose Display more information.
-q, --quiet Only display errors and warnings.
-h, --help Show help message.

Aliases

pinfo

project-init

Purpose

Initialize new project meta-directory.

Usage

bzr project-init LOCATION

Options

--usage Show usage message and options.
-v, --verbose Display more information.
-q, --quiet Only display errors and warnings.
-h, --help Show help message.

Description

For new local projects, this will make a new project dir with a .scmproj control branch inside. For new remote projects, this will only make a new scmproj control branch at the specified location.

Aliases

pinit

project-publish

Purpose

Publish (push back) changes from components branches and control branch.

Usage

bzr project-publish [COMPONENT...]

Options

--subset=ARG Push data for specified subset.
--full-set Push data for all components.
-v, --verbose Display more information.
--components-only
 Publish only component branches.
-q, --quiet Only display errors and warnings.
--strict Refuse to push if there are uncommitted changes in components trees, –no-strict disables the check.
--usage Show usage message and options.
--alt=ALT Push data for specified alt.
-h, --help Show help message.

Aliases

pback, project-push, ppush

project-update

Purpose

Update components of the project from their origins.

Usage

bzr project-update [LOCATION]

Options

--usage Show usage message and options.
--components-only
 Update only component branches.
-v, --verbose Display more information.
-q, --quiet Only display errors and warnings.
-h, --help Show help message.

Aliases

pup, pupdate