brz(1)

๐Ÿ“ฆ
version 3.3.21 ยท 4 versions
, in fedora 44

๐ŸŒธ brz(1) โ€” Breezy ๐ŸŒธ

okay bestie, sit DOWN, because this is the manual page for brz โ€” aka Breezy, the next-generation distributed version control system. Yes, that Breezy. It's a whole vibe, it's a whole personality, and by the end of this you're gonna be obsessed. ๐Ÿ’–


โœจ NAME โœจ

brz โ€” Breezy next-generation distributed version control


โœจ SYNOPSIS โœจ

brz command [ command_options ]
brz help
brz help command

โœจ DESCRIPTION โœจ

Breezy (or brz, because who has time for the whole word) is a distributed version control system that is powerful, friendly, and scalable. And the way that it's a fork of the Bazaar version control system? iconic lineage honestly. ๐Ÿฆ‹

So what does it actually do, bestie? Breezy:

  • keeps track of changes to software source code (or similar information)
  • lets you explore who changed it, when, and why
  • merges concurrent changes
  • helps people work together in a team

It's giving โœจcollaborationโœจ. It's giving main character energy for your entire repo. ๐Ÿ’…


โœจ COMMAND OVERVIEW โœจ

Here's the whole menu, bestie โ€” every command, no skips, no shortcuts. Skim it, screenshot it, whatever. ๐ŸŽ€

  • brz add [FILE...] โ€” Add specified files or directories.
  • brz alias [NAME] โ€” Set/unset and display aliases.
  • brz annotate FILENAME โ€” Show the origin of each line in a file.
  • brz bind [LOCATION] โ€” Convert the current branch into a checkout of the supplied branch.
  • brz bisect SUBCOMMAND [ARGS...] โ€” Find an interesting commit using a binary search.
  • brz branch FROM_LOCATION [TO_LOCATION] โ€” Create a new branch that is a copy of an existing branch.
  • brz branches [LOCATION] โ€” List the branches available at the current location.
  • brz break-lock [LOCATION] โ€” Break a dead lock.
  • brz cat FILENAME โ€” Write the contents of a file as of a given revision to standard output.
  • brz check [PATH] โ€” Validate working tree structure, branch consistency and repository history.
  • brz checkout [BRANCH_LOCATION] [TO_LOCATION] โ€” Create a new checkout of an existing branch.
  • brz clean-tree โ€” Remove unwanted files from working tree.
  • brz clone FROM_LOCATION [TO_LOCATION] โ€” Clone a control directory.
  • brz commit [SELECTED...] โ€” Commit changes into a new revision.
  • brz config [NAME] โ€” Display, set or remove a configuration option.
  • brz conflicts โ€” List files with conflicts.
  • brz cp [NAMES...] โ€” Copy a file.
  • brz deleted โ€” List files deleted in the working tree.
  • brz diff [FILE...] โ€” Show differences in the working tree, between revisions or branches.
  • brz export DEST [BRANCH_OR_SUBDIR] โ€” Export current or past revision to a destination directory or archive.
  • brz grep PATTERN [PATH...] โ€” Print lines matching PATTERN for specified files and revisions.
  • brz help [TOPIC] โ€” Show help on a command or other topic.
  • brz ignore [NAME_PATTERN...] โ€” Ignore specified files or patterns.
  • brz ignored โ€” List ignored files and the patterns that matched them.
  • brz import SOURCE [TREE] โ€” Import sources from a directory, tarball or zip file
  • brz info [LOCATION] โ€” Show information about a working tree, branch or repository.
  • brz init [LOCATION] โ€” Make a directory into a versioned branch.
  • brz init-shared-repository LOCATION โ€” Create a shared repository for branches to share storage space.
  • brz join TREE โ€” Combine a tree into its containing tree.
  • brz launchpad-login [NAME] โ€” Show or set the Launchpad user ID.
  • brz launchpad-logout โ€” Unset the Launchpad user ID.
  • brz launchpad-open [LOCATION] โ€” Open a Launchpad branch page in your web browser.
  • brz link-tree LOCATION โ€” Hardlink matching files to another tree.
  • brz log [FILE...] โ€” Show historical log for a branch or subset of a branch.
  • brz lp-find-proposal โ€” Find the proposal to merge this revision.
  • brz ls [PATH] โ€” List files in a tree.
  • brz merge [LOCATION] โ€” Perform a three-way merge.
  • brz missing [OTHER_BRANCH] โ€” Show unmerged/unpulled revisions between two branches.
  • brz mkdir DIR... โ€” Create a new versioned directory.
  • brz mv [NAMES...] โ€” Move or rename a file.
  • brz nick [NICKNAME] โ€” Print or set the branch nickname.
  • brz pack [BRANCH_OR_REPO] โ€” Compress the data within a repository.
  • brz patch [FILENAME] โ€” Apply a named patch to the current tree.
  • brz ping LOCATION โ€” Pings a Bazaar smart server.
  • brz plugins โ€” List the installed plugins.
  • brz pull [LOCATION] โ€” Turn this branch into a mirror of another branch.
  • brz push [LOCATION] โ€” Update a mirror of this branch.
  • brz reconcile [BRANCH] โ€” Reconcile brz metadata in a branch.
  • brz reconfigure [LOCATION] โ€” Reconfigure the type of a brz directory.
  • brz remerge [FILE...] โ€” Redo a merge.
  • brz remove [FILE...] โ€” Remove files or directories.
  • brz remove-branch [LOCATION] โ€” Remove a branch.
  • brz remove-tree [LOCATION...] โ€” Remove the working tree from a given branch/checkout.
  • brz renames [DIR] โ€” Show list of renamed files.
  • brz resolve [FILE...] โ€” Mark a conflict as resolved.
  • brz revert [FILE...] โ€” Set files in the working tree back to the contents of a previous revision.
  • brz revno [LOCATION] โ€” Show current revision number.
  • brz root [FILENAME] โ€” Show the tree root directory.
  • brz send [SUBMIT_BRANCH] [PUBLIC_BRANCH] โ€” Mail or create a merge-directive for submitting changes.
  • brz serve โ€” Run the brz server.
  • brz shelve [FILE...] โ€” Temporarily set aside some changes from the current tree.
  • brz sign-my-commits [LOCATION] [COMMITTER] โ€” Sign all commits by a given committer.
  • brz split TREE โ€” Split a subdirectory of a tree into a separate tree.
  • brz status [FILE...] โ€” Display status summary.
  • brz switch [TO_LOCATION] โ€” Set the branch of a checkout and update.
  • brz tag [TAG_NAME] โ€” Create, remove or modify a tag naming a revision.
  • brz tags โ€” List tags.
  • brz testament [BRANCH] โ€” Show testament (signing-form) of a revision.
  • brz unbind โ€” Convert the current checkout into a regular branch.
  • brz uncommit [LOCATION] โ€” Remove the last committed revision.
  • brz unshelve [SHELF_ID] โ€” Restore shelved changes.
  • brz update [DIR] โ€” Update a working tree to a new revision.
  • brz upgrade [URL] โ€” Upgrade a repository, branch or working tree to a newer format.
  • brz verify-signatures [LOCATION] โ€” Verify all commit signatures.
  • brz version โ€” Show version of brz.
  • brz version-info [LOCATION] โ€” Show version information about this tree.
  • brz view [FILE...] โ€” Manage filtered views.
  • brz whoami [NAME] โ€” Show or set brz user id.

Look at that list. That's a menu. ๐Ÿ“


โœจ COMMAND REFERENCE โœจ

Now the real tea, bestie. Command by command. ๐Ÿ’…

๐ŸŒˆ brz --help

Alias for "help", see "brz help".

๐ŸŒˆ brz -?

Alias for "help", see "brz help".

๐ŸŒˆ brz -h

Alias for "help", see "brz help".

๐ŸŒˆ brz ?

Alias for "help", see "brz help".


๐ŸŒธ brz add [FILE...]

Options, bestie:

  • --dry-run โ€” Show what would be done, but don't actually do anything.
  • --file-ids-from ARG โ€” Lookup file ids from this tree.
  • --help, -h โ€” Show help message.
  • --no-recurse, -N โ€” Don't recursively add the contents of directories.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: ignore, remove

Add specified files or directories.

okay so let's talk modes, because this matters. In non-recursive mode, all the named items are added, regardless of whether they were previously ignored. And if any of the named files are already versioned? You get a warning. Noted. ๐Ÿ’€

In recursive mode (which is the default, btw), files get treated the same way but directories are a whole different story. Directories that are already versioned do not give a warning. All directories โ€” versioned or not โ€” get searched for files or subdirectories that are neither versioned or ignored, and those get added. This search proceeds recursively into versioned directories. And if you give no names at all, '.' is assumed.

A warning will be printed when nested trees are encountered, unless they are explicitly ignored.

So therefore, simply saying brz add will version all files that are currently unknown. No cap. ๐Ÿ˜ญ

Adding a file whose parent directory is not versioned will implicitly add the parent, and so on up to the root. Which means you should never need to explicitly add a directory โ€” they'll just get added when you add a file in the directory. It's giving โœจself-sufficientโœจ.

--dry-run will show which files would be added, but not actually add them.

--file-ids-from will try to use the file ids from the supplied path. It looks up ids trying to find a matching parent directory with the same filename, and then by pure path. This option is rarely needed but can be useful when adding the same logical file into two branches that will be merged later (without showing the two different adds as a conflict). It is also useful when merging another project into a subdirectory of this one.

Any files matching patterns in the ignore list will not be added unless they are explicitly mentioned.

And heads up: in recursive mode, files larger than the configuration option add.maximum_file_size will be skipped. Named items are never skipped due to file size.


๐ŸŒธ brz alias [NAME]

Options:

  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --remove โ€” Remove the alias.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Set/unset and display aliases.

Examples:

Show the current aliases:

brz alias

Show the alias specified for 'll':

brz alias ll

Set an alias for 'll':

brz alias ll="log --line -r-10..-1"

To remove an alias for 'll':

brz alias --remove ll

Custom shortcuts?? We love to see it. ๐ŸŽ€


๐ŸŒˆ brz ann

Alias for "annotate", see "brz annotate".


๐ŸŒธ brz annotate FILENAME

Options:

  • --all โ€” Show annotations on all lines.
  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --help, -h โ€” Show help message.
  • --long โ€” Show commit date in annotations.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --show-ids โ€” Show internal object ids.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Aliases: ann, blame, praise

Show the origin of each line in a file.

Three aliases, three vibes, one command. ๐Ÿ‘‘

okay so real quick before we move on, finishing up the annotate vibes: ๐Ÿ’…

This prints out the given file with an annotation on the left side showing which revision, which author, and which date introduced the change. it's giving detective work but make it git-blame-core ๐Ÿ•ต๏ธ

If the origin is the same for a run of consecutive lines, it only shows up at the top โ€” unless you pass the --all option. then it's every single line, no skipping, main character energy for every row โœจ


brz bind [LOCATION] ๐Ÿ’–

Options:

  • --directory ARG, -d โ€” the branch to operate on, instead of the working directory. like, "not here bestie, over there" ๐Ÿ‘‰
  • --help, -h โ€” show the help message.
  • --quiet, -q โ€” only display errors and warnings. silence is golden ๐Ÿ”‡
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information. spill the tea โ˜•

See also: checkouts, unbind

Convert the current branch into a checkout of the supplied branch. If you don't supply a branch, it rebinds to the last bound location. lowkey clingy but okay ๐Ÿซถ

Once it's converted into a checkout, commits must succeed on the master branch before they'll be applied to the local branch. so no sneaky local-only commits, the master has to approve first, periodt ๐Ÿ‘‘

Bound branches use the nickname of its master branch unless it's set locally โ€” and in that case, binding will update the local nickname to be that of the master. it literally syncs the name for you, slay โœจ


brz bisect SUBCOMMAND [ARGS...] ๐Ÿ”

Options:

  • --directory ARG, -d โ€” branch to operate on, instead of working directory.
  • --help, -h โ€” show help message.
  • --output ARG, -o โ€” write log to this file.
  • --quiet, -q โ€” only display errors and warnings.
  • --revision ARG, -r โ€” see "help revisionspec" for details.
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information.

Find an interesting commit using a binary search. this is the iconic one, iykyk ๐ŸŒˆ

Bisecting, in a nutshell, is a way to find the commit at which some testable change was made โ€” like the introduction of a bug or a feature. By identifying a version which did not have the interesting change and a later version which did, a developer can test for the presence of the change at various points in the history, and eventually end up at the precise commit where the change was first introduced. it's literally just narrowing it down over and over until you hit the exact one ๐ŸŽฏ

This command uses subcommands to implement the search, and each one changes the state of the bisection. The subcommands are:

  • brz bisect start โ€” Start a bisect, possibly clearing out a previous bisect. fresh start bestie ๐Ÿงš
  • brz bisect yes [-r rev] โ€” The specified revision (or the current revision, if not given) has the characteristic we're looking for, โœ…
  • brz bisect no [-r rev] โ€” The specified revision (or the current revision, if not given) does not have the characteristic we're looking for, โŒ
  • brz bisect move -r rev โ€” Switch to a different revision manually. Use this if the bisect algorithm chooses a revision that is not suitable. Try to move as little as possible. ๐Ÿšถ
  • brz bisect reset โ€” Clear out a bisection in progress. we're so done here ๐Ÿ’€
  • brz bisect log [-o file] โ€” Output a log of the current bisection to standard output, or to the specified file.
  • brz bisect replay <logfile> โ€” Replay a previously-saved bisect log, forgetting any bisection that might be in progress. yes it forgets, no take-backs ๐Ÿ™ˆ
  • brz bisect run <script> โ€” Bisect automatically using <script> to determine 'yes' or 'no'. <script> should exit with:
    • 0 for yes
    • 125 for unknown (like build failed so we could not test)
    • anything else for no

brz blame ๐Ÿ‘€

Alias for "annotate", see "brz annotate".


brz branch FROM_LOCATION [TO_LOCATION] ๐ŸŒฑ

Options:

  • --bind โ€” bind new branch to from location.
  • --colocated-branch ARG, -bName โ€” name of colocated branch to sprout.
  • --files-from ARG โ€” get file contents from this tree.
  • --hardlink โ€” hard-link working tree files where possible.
  • --help, -h โ€” show help message.
  • --no-recurse-nested โ€” do not recursively check out nested trees.
  • --no-tree โ€” create a branch without a working-tree.
  • --quiet, -q โ€” only display errors and warnings.
  • --revision ARG, -r โ€” see "help revisionspec" for details.
  • --stacked โ€” create a stacked branch referring to the source branch. The new branch will depend on the availability of the source branch for all operations.
  • --standalone โ€” do not use a shared repository, even if available.
  • --switch โ€” switch the checkout in the current directory to the new branch.
  • --usage โ€” show usage message and options.
  • --use-existing-dir โ€” by default branch will fail if the target directory exists, but does not already have a control directory. This flag will allow branch to proceed.
  • --verbose, -v โ€” display more information.

See also: checkout

Create a new branch that's a copy of an existing branch. โœจ

If the TO_LOCATION is omitted, the last component of the FROM_LOCATION gets used. In other words, "branch ../foo/bar" will attempt to create ./bar. And if the FROM_LOCATION has no / or path separator embedded, the TO_LOCATION is derived from the FROM_LOCATION by stripping a leading scheme or drive identifier, if any. For example, "branch lp:foo-bar" will attempt to create ./foo-bar. it just figures it out for you, no thoughts needed ๐Ÿง 

To retrieve the branch as of a particular revision, supply the --revision parameter, as in "branch foo/bar -r 5".


brz branches [LOCATION] ๐ŸŽ€

Options:

  • --help, -h โ€” show help message.
  • --quiet, -q โ€” only display errors and warnings.
  • --recursive, -R โ€” recursively scan for branches rather than just looking in the specified location.
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information.

List the branches available at the current location. ๐Ÿ“‹

This command prints the names of all the branches at the current location. all of them. the whole roster ๐Ÿซถ


brz break-lock [LOCATION] ๐Ÿ”“

Options:

  • --config โ€” LOCATION is the directory where the config lock is.
  • --force โ€” do not ask for confirmation before breaking the lock.
  • --help, -h โ€” show help message.
  • --quiet, -q โ€” only display errors and warnings.
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information.

Break a dead lock. ๐Ÿ’€โžก๏ธโœจ

This command breaks a lock on a repository, branch, working directory or config file.

CAUTION: Locks should only be broken when you are sure that the process holding the lock has been stopped. seriously bestie, do NOT just yank it, check first ๐Ÿ™

You can get information on what locks are open via the 'brz info [location]' command.

Examples:

brz break-lock
brz break-lock brz+ssh://example.com/brz/foo
brz break-lock --conf ~/.config/breezy

brz cat FILENAME ๐Ÿฑ

Options:

  • --directory ARG, -d โ€” branch to operate on, instead of working directory.
  • --filters โ€” apply content filters to display the convenience form.
  • --help, -h โ€” show help message.
  • --name-from-revision โ€” the path name in the old tree.
  • --quiet, -q โ€” only display errors and warnings.
  • --revision ARG, -r โ€” see "help revisionspec" for details.
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information.

See also: ls

Write the contents of a file as of a given revision to standard output. ๐Ÿ“ค

If no revision is nominated, the last revision is used. default behavior just vibes โœจ

Note: Take care to redirect standard output when using this command on a binary file. fr fr, don't just dump binary into your terminal, it WILL be a mess ๐Ÿ˜ญ

brz check [PATH] โœ…

Options:

  • --branch โ€” check the branch related to the current directory.
  • --help, -h โ€” show help message.
  • --quiet, -q โ€” only display errors and warnings.
  • --repo โ€” check the repository related to the current directory.
  • --tree โ€” check the working tree related to the current directory.
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information.

See also: reconcile

Validate working tree structure, branch consistency and repository history. it's the vibe check but for your data ๐Ÿฉบ

This command checks various invariants about branch and repository storage to detect data corruption or brz bugs.

The working tree and branch checks only give output if a problem is detected. The output fields of the repository check are:

  • revisions โ€” this is just the number of revisions checked. It doesn't indicate a problem. it's literally just a count, don't panic ๐Ÿ’œ
  • versionedfiles โ€” this is just the number of versionedfiles checked. It doesn't indicate a problem either.
  • unreferenced ancestors โ€” texts that are ancestors of other texts, but are not properly referenced by the revision ancestry. This is a subtle problem that Breezy can work around. lowkey shady but survivable ๐Ÿ™ˆ
  • unique file texts โ€” this is the total number of unique file contents seen in the checked revisions. It does not indicate a problem.
  • repeated file texts โ€” this is the total number of repeated texts seen in the checked revisions. Texts can be repeated when their file entries are modified, but the file contents are not. It does not indicate a problem.

If no restrictions are specified, all data that is found at the given location will be checked. everything. the whole thing ๐Ÿ‘‘

Examples:

Check the tree and branch at 'foo':

brz check --tree --branch foo

Check only the repository at 'bar':

brz check --repo bar

Check everything at 'baz':

brz check baz

brz checkin ๐Ÿ“Œ

Alias for "commit", see "brz commit".

brz checkout [BRANCH_LOCATION] [TO_LOCATION]</p>

Options:

  • --files-from ARG โ€” pull the file contents from this tree instead.
  • --hardlink โ€” hard-link the working tree files where it can, bestie.
  • --help, -h โ€” show the help message.
  • --lightweight โ€” do a lightweight checkout. Heads up: lightweight checkouts are codependent โ€” they need access to the branch for every single operation ๐Ÿ˜ญ. Normal checkouts can do the everyday stuff like diff and status without that access, and they also support local commits. So like, choose wisely.
  • --quiet, -q โ€” only display errors and warnings.
  • --revision ARG, -r โ€” see help revisionspec for the deets.
  • --usage โ€” show the usage message and options.
  • --verbose, -v โ€” display more information.

Alias: co

See also: branch, checkouts, remove-tree, working-trees


Okay so this one creates a new checkout of a branch that already exists. Iconic. โœจ

If you leave out BRANCH_LOCATION, checkout will reconstitute a working tree for the branch it finds in '.'. Which is soooo useful if you deleted the working tree, or if it literally never got created in the first place โ€” like if you pushed the branch to its current location over SFTP. Been there ๐Ÿ’€.

If you leave out the TO_LOCATION, it just uses the last component of the BRANCH_LOCATION. So basically checkout ../foo/bar will try to create ./bar. And if the BRANCH_LOCATION has no / or path separator in it, the TO_LOCATION gets derived by stripping off a leading scheme or drive identifier, if there is one. Example: checkout lp:foo-bar will try to create ./foo-bar. The way that works is lowkey elegant ngl.

Wanna grab the branch as it was at a specific revision? Pass the --revision parameter, like checkout foo/bar -r 5. But bestie, real talk โ€” that checkout will be immediately out of date [so you cannot commit] but it can still be useful (like, to go examine some old code).

brz ci</p>

Alias for commit, see brz commit.

brz clean-tree

Options:

  • --detritus โ€” delete conflict files, merge and revert backups, and failed selftest dirs.
  • --directory ARG, -d โ€” branch to operate on, instead of the working directory.
  • --dry-run โ€” show the files it would delete instead of actually deleting them.
  • --force โ€” do not prompt before deleting.
  • --help, -h โ€” show the help message.
  • --ignored โ€” delete all ignored files.
  • --quiet, -q โ€” only display errors and warnings.
  • --unknown โ€” delete files unknown to brz (this is the default).
  • --usage โ€” show the usage message and options.
  • --verbose, -v โ€” display more information.

Removes the unwanted files from your working tree ๐Ÿงนโœจ.

By default it only deletes unknown files, not ignored ones. And versioned files? Never touched. Periodt.

There's another class called 'detritus', which is all the files brz spits out during normal operations and selftests. (The value of those files decreases with time, iykyk.)

If you specify no options at all, unknown files get deleted. Otherwise the option flags are respected, and you can totally combine them.

Wanna see what clean-tree is about to do before it does it? Use --dry-run. Safety first ๐Ÿ’….

brz clone FROM_LOCATION [TO_LOCATION]

Options:

  • --help, -h โ€” show the help message.
  • --no-recurse-nested โ€” do not recursively check out nested trees.
  • --quiet, -q โ€” only display errors and warnings.
  • --revision ARG, -r โ€” see help revisionspec for the deets.
  • --usage โ€” show the usage message and options.
  • --verbose, -v โ€” display more information.

Clone a control directory.

brz co</p>

Alias for checkout, see brz checkout.

brz commit [SELECTED...]

Options:

  • --author ARG โ€” set the author's name, if it's different from the committer.
  • --bugs ARG โ€” link to a related bug. (see brz help bugs).
  • --commit-time ARG โ€” manually set a commit time using commit date format, e.g. '2009-10-10 08:00:00 +0100'.
  • --exclude ARG, -x โ€” do not consider changes made to a given path.
  • --file MSGFILE, -F โ€” take the commit message from this file.
  • --fixes ARG โ€” mark a bug as being fixed by this revision (see brz help bugs).
  • --help, -h โ€” show the help message.
  • --local โ€” perform a local commit in a bound branch. Local commits are not pushed to the master branch until a normal commit is performed.
  • --lossy โ€” when committing to a foreign version control system, do not push data that cannot be natively represented.
  • --message ARG, -m โ€” description of the new revision.
  • --quiet, -q โ€” only display errors and warnings.
  • --show-diff, -p โ€” when no message is supplied, show the diff along with the status summary in the message editor.
  • --strict โ€” refuse to commit if there are unknown files in the working tree.
  • --unchanged โ€” commit even if nothing has changed.
  • --usage โ€” show the usage message and options.
  • --verbose, -v โ€” display more information.

Aliases: ci, checkin

See also: add, bugs, hooks, uncommit


Commit your changes into a new revision ๐ŸŽ€.

Every commit needs an explanatory message, that's just the vibe. Usually you do this with the --message option (message straight from the command line) or the --file option (message from a file). If you give neither, an editor pops open so you can type it yourself. And if you wanna see the changed files in the boilerplate text that gets loaded into that editor, use the --show-diff option.

By default, the entire tree gets committed, and whoever's doing the committing is assumed to be the author. But both of those defaults can be overridden, as explained below ๐Ÿ‘‡.

Selective commits:

  • If you specify selected files, only changes to those files get committed. And if you point at a directory, then the directory and everything inside it gets committed.
  • When excludes are given, they take precedence over selected files. For example, to commit only changes within foo, but not changes within foo/bar:
brz commit foo -x foo/bar
  • A selective commit after a merge is not yet supported. ๐Ÿ™ˆ

Custom authors:

  • If the author of the change isn't the same person as the committer, you can set the author's name with the --author option. The name should be in the same format as a committer-id, e.g. "John Doe <jdoe@example.com>". And if there's more than one author of the change, you can pass the option multiple times โ€” once for each author. Slay.

Checks:

  • A common mistake is forgetting to add a new file or directory before running the commit command. The --strict option checks for unknown files and aborts the commit if any turn up. More advanced pre-commit checks can be implemented by defining hooks. See brz help hooks for details.

Things to note:

  • If you accidentally commit the wrong changes, or make a spelling mistake in the commit message say, you can use the uncommit command to undo it. See brz help uncommit for details.
  • Hooks can also be configured to run after a commit. This lets you trigger updates to external systems like bug trackers. The --fixes option can be used to record the association between a revision and one or more bugs. See brz help bugs for details.

brz config [NAME]

Options:

  • --all โ€” display all the defined values for the matching options.
  • --directory ARG, -d โ€” branch to operate on, instead of the working directory.
  • --help, -h โ€” show the help message.
  • --quiet, -q โ€” only display errors and warnings.
  • --remove โ€” remove the option from the configuration file.
  • --scope ARG โ€” reduce the scope to the specified configuration file.
  • --usage โ€” show the usage message and options.
  • --verbose, -v โ€” display more information.

See also: configuration


Display, set or remove a configuration option โœจ.

This displays the active value for the option NAME.

If --all is specified, NAME gets interpreted as a regular expression, and all matching options are displayed mentioning their scope and without resolving option references in the value). The active value that bzr will take into account is the first one displayed for each option.

If NAME isn't given, --all .* is implied (so all options are displayed for the current scope).

Setting a value is done by using NAME=value โ€” no spaces, bestie. The value gets set in the most relevant scope and you can check it by displaying the option again.

Removing a value is done by using --remove NAME.

brz conflicts

Options:

  • --directory ARG, -d โ€” branch to operate on, instead of the working directory.
  • --help, -h โ€” show the help message.
  • --quiet, -q โ€” only display errors and warnings.
  • --text โ€” list paths of files with text conflicts.
  • --usage โ€” show the usage message and options.
  • --verbose, -v โ€” display more information.

See also: conflict-types, resolve


List the files with conflicts ๐Ÿ˜ญ.

Merge will do its absolute best to combine the changes in two branches, but some kinds of problems can only be fixed by a human. When it runs into those, it marks a conflict. And a conflict means you have to fix something before you can commit. No skipping.

Conflicts normally show up as short, human-readable messages. But if --text is supplied, the pathnames of files with text conflicts get listed instead. (Which is useful for editing all the files with text conflicts at once.)

Use brz resolve once you've fixed the problem ๐Ÿซถ.

brz copy

Alias for cp, see brz cp.

๐ŸŒธ brz cp ๐ŸŒธ

Options, bestie:

  • --help, -h โ€” shows you the help message, duh ๐Ÿ’–
  • --quiet, -q โ€” only shows errors and warnings, nothing else
  • --usage โ€” shows the usage message plus the options
  • --verbose, -v โ€” gives you MORE info, we love a yapper โœจ

Alias: copy

Copy a file. That's it, that's the gig.

Usage:

brz cp OLDNAME NEWNAME

brz cp SOURCE... DESTINATION

If the last argument is a versioned directory, all the other names get copied into it. Otherwise there has to be exactly two arguments and the file gets copied to a new name. No more, no less ๐Ÿซถ

Files cannot be copied between branches. And only files can be copied at the moment โ€” that's the whole menu, sorry bestie ๐Ÿ˜ญ

๐ŸŒˆ brz del ๐ŸŒˆ

Alias for "remove", so go see "brz remove". Periodt.


๐Ÿฆ‹ brz deleted ๐Ÿฆ‹

Options:

  • --directory ARG, -d โ€” branch to operate on, instead of the working directory
  • --help, -h โ€” show help message
  • --quiet, -q โ€” only display errors and warnings
  • --show-ids โ€” show internal object ids ๐Ÿ‘€
  • --usage โ€” show usage message and options
  • --verbose, -v โ€” display more information

See also: ls, status

List files deleted in the working tree. It's giving "where did they go" ๐Ÿ’€


๐Ÿ’… brz di ๐Ÿ’…

Alias for "diff", see "brz diff".


๐ŸŽ€ brz dif ๐ŸŽ€

Alias for "diff", see "brz diff".


โœจ brz diff [FILE...] โœจ

Options:

  • --change ARG, -c โ€” select changes introduced by the specified revision. See also "help revisionspec".
  • --check-style โ€” warn if trailing whitespace or spurious changes have been added. (yes it's watching you ๐Ÿ‘€)
  • --color ARG โ€” color mode to use. "always": always colorize output (default). "auto": only colorize output if the terminal supports it and STDOUT is a TTY. "never": never colorize output.
  • --context ARG โ€” how many lines of context to show.
  • --diff-options ARG โ€” pass these options to the external diff program.
  • --format ARG, -F โ€” diff format to use.
  • --help, -h โ€” show help message.
  • --new ARG โ€” branch/tree to compare to.
  • --old ARG โ€” branch/tree to compare from.
  • --prefix ARG, -p โ€” set prefixes added to old and new filenames, as two values separated by a colon. (eg "old/:new/").
  • --quiet, -q โ€” only display errors and warnings.
  • --revision ARG, -r โ€” see "help revisionspec" for details.
  • --usage โ€” show usage message and options.
  • --using ARG โ€” use this command to compare files.
  • --verbose, -v โ€” display more information.

Aliases: di, dif

See also: status

Show differences in the working tree, between revisions or branches. The main character of commands, honestly ๐Ÿ‘‘

If no arguments are given, all changes for the current tree are listed. If files are given, only the changes in those files are listed. Remote and multiple branches can be compared by using the --old and --new options. If not provided, the default for both is derived from the first argument, if any, or the current tree if no arguments are given.

"brz diff -p1" is equivalent to "brz diff --prefix old/:new/", and produces patches suitable for "patch -p1".

Note that when using the -r argument with a range of revisions, the differences are computed between the two specified revisions. That is, the command does not show the changes introduced by the first revision in the range. This differs from the interpretation of revision ranges used by "brz log" which includes the first revision in the range. Okay so this one trips everybody up, fr fr ๐Ÿ˜ญ

Exit values:

1 - changed
2 - unrepresentable changes
3 - error
0 - no change

Examples, bestie, let's go:

Shows the difference in the working tree versus the last commit:

brz diff

Difference between the working tree and revision 1:

brz diff -r1

Difference between revision 3 and revision 1:

brz diff -r1..3

Difference between revision 3 and revision 1 for branch xxx:

brz diff -r1..3 xxx

The changes introduced by revision 2 (equivalent to -r1..2):

brz diff -c2

To see the changes introduced by revision X:

brz diff -cX

Note that in the case of a merge, the -c option shows the changes compared to the left hand parent. To see the changes against another parent, use:

brz diff -r<chosen_parent>..X

The changes between the current revision and the previous revision (equivalent to -c-1 and -r-2..-1)

brz diff -r-2..

Show just the differences for file NEWS:

brz diff NEWS

Show the differences in working tree xxx for file NEWS:

brz diff xxx/NEWS

Show the differences from branch xxx to this working tree:

brz diff --old xxx

Show the differences between two branches for file NEWS:

brz diff --old xxx --new yyy NEWS

Same as 'brz diff' but prefix paths with old/ and new/:

brz diff --prefix old/:new/

Show the differences using a custom diff program with options:

brz diff --using /usr/bin/diff --diff-options -wu

๐Ÿงš brz export DEST [BRANCH_OR_SUBDIR] ๐Ÿงš

Options:

  • --directory ARG, -d โ€” branch to operate on, instead of the working directory.
  • --filters โ€” apply content filters to export the convenient form.
  • --format ARG โ€” type of file to export to.
  • --help, -h โ€” show help message.
  • --per-file-timestamps โ€” set modification time of files to that of the last revision in which it was changed. โฐ
  • --quiet, -q โ€” only display errors and warnings.
  • --recurse-nested โ€” include contents of nested trees.
  • --revision ARG, -r โ€” see "help revisionspec" for details.
  • --root ARG โ€” name of the root directory inside the exported file.
  • --uncommitted โ€” export the working tree contents rather than that of the last revision.
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information.

Export current or past revision to a destination directory or archive. It's giving "take my code, I'm done" ๐Ÿซถ

If no revision is specified this exports the last committed revision.

Format may be an "exporter" name, such as tar, tgz, tbz2. If none is given, try to find the format with the extension. If no extension is found, exports to a directory (equivalent to --format=dir).

If root is supplied, it will be used as the root directory inside container formats (tar, zip, etc). If it is not supplied it will default to the exported filename. The root option has no effect for 'dir' format.

If branch is omitted then the branch containing the current working directory will be used.

Note: Export of tree with non-ASCII filenames to zip is not supported. ๐Ÿ’€
  =================       =========================
  Supported formats       Autodetected by extension
  =================       =========================
     dir                         (none)
     tar                          .tar
     tbz2                    .tar.bz2, .tbz2
     tgz                      .tar.gz, .tgz
     zip                          .zip
  =================       =========================

๐ŸŒŸ brz grep PATTERN [PATH...] ๐ŸŒŸ

Options:

  • --color WHEN โ€” show match in color. WHEN is never, always or auto.
  • --diff, -p โ€” grep for pattern in changeset for each revision.
  • --exclude GLOB, -X โ€” skip files whose base name matches GLOB.
  • --files-with-matches, -l โ€” print only the name of each input file in which PATTERN is found.
  • --files-without-match, -L โ€” print only the name of each input file in which PATTERN is not found.
  • --fixed-string, -F โ€” interpret PATTERN as a single fixed string (not regex).
  • --from-root โ€” search for pattern starting from the root of the branch. (implies --recursive)
  • --help, -h โ€” show help message.
  • --ignore-case, -i โ€” ignore case distinctions while matching.
  • --include GLOB, -I โ€” search only files whose base name matches GLOB.
  • --levels N โ€” number of levels to display โ€” 0 for all, 1 for collapsed (1 is default).
  • --line-number, -n โ€” show 1-based line number.
  • --no-recursive โ€” don't recurse into subdirectories. (default is --recursive)
  • --null, -Z โ€” write an ASCII NUL (\0) separator between output lines rather than a newline.
  • --quiet, -q โ€” only display errors and warnings.
  • --revision ARG, -r โ€” see "help revisionspec" for details.
  • --usage โ€” show usage message and options.
  • --verbose, -v โ€” display more information.

Print lines matching PATTERN for specified files and revisions. Detective mode activated ๐Ÿ”

This command searches the specified files and revisions for a given pattern. The pattern is specified as a Python regular expressions[1].

If the file name is not specified, the revisions starting with the current directory are searched recursively. If the revision number is not specified, the working copy is searched. To search the last committed revision, use the '-r -1' or '-r last:1' option.

Unversioned files are not searched unless explicitly specified on the command line. Unversioned directores are not searched. (yes, "directores" โ€” we keep it exactly as written, no cap ๐Ÿ’…)

When searching a pattern, the output is shown in the 'filepath:string' format. If a revision is explicitly searched, the output is shown as 'filepath~N:string', where N is the revision number.

--include and --exclude options can be used to search only (or exclude from search) files with base name matches the specified Unix style GLOB pattern. The GLOB pattern an use *, ?, and [...] as wildcards, and \\ to quote wildcard or backslash character literally. Note that the glob pattern is not a regular expression.

[1] http://docs.python.org/library/re.html#regular-expression-syntax

brz help</p> [TOPIC] ๐Ÿ’–

Like, the actual help desk bestie. โœจ

Options:

  • --help, -h โ€” shows you the help message.
  • --long โ€” shows help on all the commands, the whole buffet.
  • --quiet, -q โ€” only shows errors and warnings. no small talk.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

Aliases: ?, --help, -?, -h

See also: topics

Shows help on a command or some other topic. that's it, that's the whole vibe. ๐Ÿฆ‹


brz ignore</p> [NAME_PATTERN...] ๐Ÿ™ˆ

Options:

  • --default-rules โ€” displays the default ignore rules that brz uses.
  • --directory ARG, -d โ€” branch to operate on, instead of the working directory.
  • --help, -h โ€” shows you the help message.
  • --quiet, -q โ€” only shows errors and warnings.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

See also: ignored, patterns, status

Ignores the files or patterns you name. โœจ

Run brz help patterns for the deets on the syntax of patterns. iykyk.

If a .bzrignore file doesn't exist yet, the ignore command will create one and drop the files or patterns you listed into that brand-new file. It also automatically adds the.bzrignore file to be versioned. no cap. (If you make a .bzrignore file without using the ignore command, you'll have to explicitly add it yourself. rude, but true.)

To remove patterns from the ignore list, just edit the .bzrignore file. After adding, editing or deleting that file โ€” whether you did it indirectly through this command or directly with an editor โ€” be sure to commit it. ๐Ÿ’…

Breezy also supports a global ignore file at ~/.config/breezy/ignore. On Windows, the global ignore file lives in the application data directory as C:\Documents and Settings\<user>\Application Data\Breezy\3.0\ignore. Global ignores are not touched by this command โ€” you edit that one directly with an editor, bestie.

Patterns prefixed with ! are exceptions to ignore patterns and take precedence over regular ignores. Those exceptions are how you say "actually no, version this one" for files that would otherwise get ignored. ๐Ÿ‘‘

Patterns prefixed with !! act as regular ignore patterns, but they take precedence over the ! exception patterns. hierarchy! ๐Ÿ˜ค

Notes:

  • Ignore patterns containing shell wildcards must be quoted from the shell on Unix.
  • Ignore patterns starting with # act as comments in the ignore file. To ignore patterns that begin with that character, use the RE: prefix.

Examples:

    Ignore the top level Makefile:

        brz ignore ./Makefile

    Ignore .class files in all directories...:

        brz ignore "*.class"

    ...but do not ignore "special.class":

        brz ignore "!special.class"

    Ignore files whose name begins with the "#" character:

        brz ignore "RE:^#"

    Ignore .o files under the lib directory:

        brz ignore "lib/**/*.o"

    Ignore .o files under the lib directory:

        brz ignore "RE:lib/.*\.o"

    Ignore everything but the "debian" toplevel directory:

        brz ignore "RE:(?!debian/).*"

    Ignore everything except the "local" toplevel directory,
    but always ignore autosave files ending in ~, even under local/:

        brz ignore "*"
        brz ignore "!./local"
        brz ignore "!!*~"

brz ignored</p> ๐Ÿ“

Options:

  • --directory ARG, -d โ€” branch to operate on, instead of the working directory.
  • --help, -h โ€” shows you the help message.
  • --quiet, -q โ€” only shows errors and warnings.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

See also: ignore, ls

Lists ignored files and the patterns that matched them. the receipts!! ๐Ÿงพโœจ

It lists all the ignored files and the ignore pattern that caused each file to be ignored.

Alternatively, if you literally just want the files:

    brz ls --ignored

brz import</p> SOURCE [TREE] ๐ŸŽ€

Options:

  • --help, -h โ€” shows you the help message.
  • --quiet, -q โ€” only shows errors and warnings.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

Imports sources from a directory, tarball or zip file. ๐Ÿ“ฆโœจ

This command will import a directory, tarball or zip file into a bzr tree, replacing any versioned files already present. (yes, replacing. be aware.) If a directory is specified, it is used as the target. If the directory doesn't exist, or isn't versioned, it is created.

Tarballs may be gzip or bzip2 compressed. This is autodetected, so you don't gotta tell it. ๐Ÿฆ‹

If the tarball or zip has a single root directory, that directory is stripped when extracting the tarball. This is not done for directories. ๐ŸŒธ


brz info</p> [LOCATION] ๐Ÿ”ฅ

Options:

  • --help, -h โ€” shows you the help message.
  • --quiet, -q โ€” only shows errors and warnings.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

See also: repositories, revno, working-trees

Shows information about a working tree, branch or repository. the glow-up report ๐Ÿ’…

This command will show all known locations and formats associated to the tree, branch or repository.

In verbose mode, statistical information is included with each report. To see extended statistic information, use a verbosity level of 2 or higher by specifying the verbose option multiple times, e.g. -vv. stack 'em. ๐Ÿ“š

Branches and working trees will also report any missing revisions.

Examples:

  Display information on the format and related locations:

    brz info

  Display the above together with extended format information and
  basic statistics (like the number of files in the working tree and
  number of revisions in the branch and repository):

    brz info -v

  Display the above together with number of committers to the branch:

    brz info -vv

brz init</p> [LOCATION] ๐Ÿ‘‘

Options:

  • --append-revisions-only โ€” never change revnos or the existing log. Append revisions to it only.
  • --create-prefix โ€” create the path leading up to the branch if it does not already exist.
  • --format ARG โ€” specify a format for this branch. See help formats for a full list.
  • --2a โ€” format for the bzr 2.0 series.
  • --bzr โ€” format for the bzr 2.0 series.
  • --default โ€” format for the bzr 2.0 series.
  • --git โ€” GIT repository.
  • --git-bare โ€” bare GIT repository (no working tree).
  • --help, -h โ€” shows you the help message.
  • --no-tree โ€” create a branch without a working tree.
  • --quiet, -q โ€” only shows errors and warnings.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

See also: branch, checkout, init-shared-repository

Makes a directory into a versioned branch. ๐ŸŽ€

Use this to create an empty branch, or before importing an existing project.

If there's a repository in a parent directory of the location, then the history of the branch will be stored in the repository. Otherwise init creates a standalone branch which carries its own history in the .bzr directory. independent queen ๐Ÿ’…

If there's already a branch at the location but it has no working tree, the tree can be populated with brz checkout.

Recipe for importing a tree of files:

    cd ~/project
    brz init
    brz add .
    brz status
    brz commit -m "imported project"

brz init-repo</p> ๐ŸŒˆ

Alias for init-shared-repository, see brz init-shared-repository. short and sweet โœจ


brz init-shared-repo</p> ๐ŸŒˆ

Alias for init-shared-repository, see brz init-shared-repository. another one ๐Ÿ˜Œ


brz init-shared-repository</p> LOCATION ๐Ÿ’œ

Options:

  • --format ARG โ€” specify a format for this repository. See brz help formats for details.
  • --2a โ€” format for the bzr 2.0 series.
  • --bzr โ€” format for the bzr 2.0 series.
  • --default โ€” format for the bzr 2.0 series.
  • --git โ€” GIT repository.
  • --git-bare โ€” bare GIT repository (no working tree).
  • --help, -h โ€” shows you the help message.
  • --no-trees โ€” branches in the repository will default to not having a working tree.
  • --quiet, -q โ€” only shows errors and warnings.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

Aliases: init-shared-repo, init-repo

See also: branch, checkout, init, repositories

Creates a shared repository so branches can share storage space. the communal closet ๐Ÿซถ

New branches created under the repository directory will store their revisions in the repository, not in the branch directory. For branches with shared history, this reduces the amount of storage needed and speeds up the creation of new branches. iconic behaviour, fr fr.

If the --no-trees option is given then the branches in the repository will not have working trees by default. They will still exist as directories on disk, but they won't have separate copies of the files at a certain revision. This can be useful for repositories that store branches which are interacted with through checkouts or remote branches, such as on a server. ๐Ÿ–ฅ๏ธ

Examples:

    Create a shared repository holding just branches:

        brz init-shared-repo --no-trees repo
        brz init repo/trunk

    Make a lightweight checkout elsewhere:

        brz checkout --lightweight repo/trunk trunk-checkout
        cd trunk-checkout
        (add files here)

brz join</p> TREE ๐Ÿ’–

Options:

  • --help, -h โ€” shows you the help message.
  • --quiet, -q โ€” only shows errors and warnings.
  • --usage โ€” shows the usage message and options.
  • --verbose, -v โ€” displays more information.

See also: split

Combines a tree into its containing tree. the reunification arc ๐Ÿฆ‹

This command requires the target tree to be in a rich-root format. no rich-root, no join. ๐Ÿ˜ญ

The TREE argument should be an independent tree, inside another tree, but not part of it. (Such trees can be produced by brz split, but also by running brz branch with the target inside a tree.)

The result is a combined tree, with the subtree no longer an independent part. This is marked as a merge of the subtree into the containing tree, and all history is preserved. nothing gets lost bestie, all of it is kept. โœจ

๐Ÿ’– brz launchpad-login [NAME]

brz launchpad-login [NAME]

Options:

  • --help, -h โ€” bestie just show me the help message ๐Ÿ’…
  • --no-check โ€” don't bother checking that the user name is even valid, we're trusting you
  • --quiet, -q โ€” only display errors and warnings, we're keeping it lowkey
  • --service-root ARG โ€” the Launchpad service root to connect to
  • --usage โ€” show the usage message and options
  • --verbose, -v โ€” display more information, give me all the deets

Alias: lp-login

Shows or sets your Launchpad user ID โœจ

So here's the tea: when we're communicating with Launchpad, some commands need to know your Launchpad user ID. This command is literally how you set it, or just peek at what it is. Bazaar uses it for all that communication, no cap.

Examples:

Show the Launchpad ID of the current user:

brz launchpad-login

Set the Launchpad ID of the current user to 'bob':

brz launchpad-login bob

๐Ÿ’ซ brz launchpad-logout

brz launchpad-logout

Options:

  • --help, -h โ€” show the help message ๐Ÿซถ
  • --quiet, -q โ€” only display errors and warnings
  • --usage โ€” show the usage message and options
  • --verbose, -v โ€” display more information

Alias: lp-logout

Unsets the Launchpad user ID ๐Ÿงš

When we talk to Launchpad, some commands need your Launchpad user ID, right? Well this command logs you out from Launchpad. The way that this works: communication with Launchpad will happen over HTTPS, and it will not require one of your SSH keys to be available. Iconic behaviour honestly.


๐Ÿฆ‹ brz launchpad-open [LOCATION]

brz launchpad-open [LOCATION]

Options:

  • --dry-run โ€” do not actually open the browser, just say the URL we would use ๐Ÿ‘€
  • --help, -h โ€” show the help message
  • --quiet, -q โ€” only display errors and warnings
  • --usage โ€” show the usage message and options
  • --verbose, -v โ€” display more information

Alias: lp-open

Opens a Launchpad branch page in your web browser ๐ŸŒˆ periodt.


brz link-tree LOCATION

Options:

  • --help, -h โ€” show the help message
  • --quiet, -q โ€” only display errors and warnings
  • --usage โ€” show the usage message and options
  • --verbose, -v โ€” display more information

Hardlinks matching files to another tree ๐Ÿ”—

Only files with identical content and execute bit will be linked. No shortcuts, no fakes.


๐Ÿ‘‘ brz log [FILE...]

brz log [FILE...]

Options:

  • --authors ARG โ€” what names to list as authors โ€” first, all or committer
  • --change ARG, -c โ€” show just the specified revision. See also help revisionspec
  • --exclude-common-ancestry โ€” display only the revisions that are not part of both ancestries (requires -rX..Y)
  • --forward โ€” show from oldest to newest
  • --help, -h โ€” show help message
  • --include-merged โ€” show merged revisions like --levels 0 does
  • --levels N, -n โ€” number of levels to display โ€” 0 for all, 1 for flat
  • --limit N, -l โ€” limit the output to the first N revisions
  • --log-format ARG โ€” use the specified log format
  • --gnu-changelog โ€” format used by GNU ChangeLog files
  • --line โ€” log format with one line per revision
  • --long โ€” detailed log format
  • --short โ€” moderately short log format
  • --match ARG, -m โ€” show revisions whose properties match this expression
  • --match-author ARG โ€” show revisions whose authors match this expression
  • --match-bugs ARG โ€” show revisions whose bugs match this expression
  • --match-committer ARG โ€” show revisions whose committer matches this expression
  • --match-message ARG โ€” show revisions whose message matches this expression
  • --omit-merges โ€” do not report commits with more than one parent
  • --quiet, -q โ€” only display errors and warnings
  • --revision ARG, -r โ€” see help revisionspec for details
  • --show-diff, -p โ€” show changes made in each revision as a patch
  • --show-ids โ€” show internal object ids
  • --signatures โ€” show digital signature validity
  • --timezone ARG โ€” display timezone as local, original, or utc
  • --usage โ€” show usage message and options
  • --verbose, -v โ€” show files changed in each revision

See also: log-formats, revisionspec

Shows the historical log for a branch or a subset of a branch ๐Ÿ•ฐ๏ธ

log is brz's default tool for exploring the history of a branch, and honestly? It ate. The branch to use is taken from the first parameter. If no parameters are given, the branch containing the working directory gets logged. Here are some simple examples:

brz log                       log the current branch
brz log foo.py                log a file in its branch
brz log http://server/branch  log a branch on a server

The filtering, ordering and information shown for each revision can be controlled as explained below. By default, all revisions are shown sorted (topologically) so that newer revisions appear before older ones, and descendants always appear before ancestors. If displayed, merged revisions are shown indented under the revision in which they were merged.

๐Ÿ’… Output control

The log format controls how information about each revision is displayed. The standard log formats are called long, short and line. The default is long. See brz help log-formats for more details on log formats.

The following options can be used to control what information is displayed:

-l N        display a maximum of N revisions
-n N        display N levels of revisions (0 for all, 1 for collapsed)
-v          display a status summary (delta) for each revision
-p          display a diff (patch) for each revision
--show-ids  display revision-ids (and file-ids), not just revnos
Heads up bestie: the default number of levels to display is a function of the log format. If the -n option is not used, the standard log formats show just the top level (mainline). ๐Ÿ‘€

Status summaries are shown using status flags like A, M, etc. To see the changes explained using words like added and modified instead, use the -vv option. That's the glow-up.

๐Ÿ”„ Ordering control

To display revisions from oldest to newest, use the --forward option. In most cases, using this option will have little impact on the total time taken to produce a log, though --forward does not incrementally display revisions like --reverse does when it can. Noted, fr fr.

๐Ÿ” Revision filtering

The -r option can be used to specify what revision or range of revisions to filter against. The various forms are shown below:

-rX      display revision X
-rX..    display revision X and later
-r..Y    display up to and including revision Y
-rX..Y   display from X to Y inclusive

See brz help revisionspec for details on how to specify X and Y. Some common examples are given below:

-r-1                show just the tip
-r-10..             show the last 10 mainline revisions
-rsubmit:..         show what's new on this branch
-rancestor:path..   show changes since the common ancestor of this
                    branch and the one at location path
-rdate:yesterday..  show changes since yesterday

When logging a range of revisions using -rX..Y, log starts at revision Y and searches back in history through the primary ("left-hand") parents until it finds X. When logging just the top level (using -n1), an error is reported if X is not found along the way. If multi-level logging is used (-n0), X may be a nested merge revision and the log will be truncated accordingly. Got it? Got it. ๐Ÿ’…

๐Ÿ—‚๏ธ Path filtering

If parameters are given and the first one is not a branch, the log will be filtered to show only those revisions that changed the nominated files or directories.

Filenames are interpreted within their historical context. To log a deleted file, specify a revision range so that the file existed at the end or start of the range.

Historical context is also important when interpreting pathnames of renamed files/directories. Consider the following example:

* revision 1: add tutorial.txt
* revision 2: modify tutorial.txt
* revision 3: rename tutorial.txt to guide.txt; add tutorial.txt

In this case:

  • brz log guide.txt will log the file added in revision 1
  • brz log tutorial.txt will log the new file added in revision 3
  • brz log -r2 -p tutorial.txt will show the changes made to the original file in revision 2.
  • brz log -r2 -p guide.txt will display an error message as there was no file called guide.txt in revision 2.

Renames are always followed by log. By design, there is no need to explicitly ask for this (and no way to stop logging a file back until it was last renamed). It's giving committed.

๐ŸŽฏ Other filtering

The --match option can be used for finding revisions that match a regular expression in a commit message, committer, author or bug. Specifying the option several times will match any of the supplied expressions. --match-author, --match-bugs, --match-committer and --match-message can be used to only match a specific field. So specific, so slay.

โœจ Tips & tricks

GUI tools and IDEs are often better at exploring history than command line tools: you may prefer qlog from qbzr, or the Loggerhead web interface. See the Breezy Plugin Guide https://www.breezy-vcs.org/doc/plugins/en/ and http://wiki.breezy-vcs.org/IDEIntegration.

You may find it useful to add the aliases below to breezy.conf:

[ALIASES]
tip = log -r-1
top = log -l10 --line
show = log -v -p

brz tip will then show the latest revision while brz top will show the last 10 mainline revisions. To see the details of a particular revision X, brz show -rX.

If you are interested in looking deeper into a particular merge X, use brz log -n0 -rX. Main character energy honestly ๐Ÿซถ

ngl bestie, brz log -v on a branch with a LOT of history is currently very slow ๐Ÿ˜ญ like genuinely struggling. There's a fix under development rn, but โ€” with or without it โ€” the recommendation stands: give a revision range when you use the -v option. Save yourself, queen. ๐Ÿ’…

Also!! brz has a generic full-text matching plugin called brz-search, and it's iconic for finding revisions matching usernames, commit messages, whatever. Among its features, it can find all revisions containing a list of words but not others. So specific. Obsessed. โœจ

And when you're exploring non-mainline history on big projects with deep history, the performance of log gets greatly improved by installing the historycache plugin โ€” it buffers historical information, trading disk space for faster speed. bestie is out here paying in gigabytes for speed and honestly? worth it. ๐Ÿฆ‹


๐ŸŒธ brz lp-find-proposal

Options:

  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Find the proposal to merge this revision. ๐ŸŽ€

So what it does: it finds the merge proposal(s) that discussed landing the specified revision. It only works if the merged_revno was recorded for the merge proposal. The proposal(s) get opened in a web browser. ๐Ÿซถ

Only the revision you specified is searched for. To find the mainline revision that merged it into mainline, use the "mainline" revision spec. iykyk.

So, to find the merge proposal that reviewed line 1 of README:

brz lp-find-proposal -r mainline:annotate:README:1

โœจ brz lp-login

Alias for "launchpad-login", see "brz launchpad-login". cute little shortcut, no cap ๐Ÿ’–


โœจ brz lp-logout

Alias for "launchpad-logout", see "brz launchpad-logout". ๐ŸŽ€


โœจ brz lp-open

Alias for "launchpad-open", see "brz launchpad-open". ๐ŸŒธ


๐ŸŒˆ brz ls [PATH]

Options:

  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --from-root โ€” Print paths relative to the root of the branch.
  • --help, -h โ€” Show help message.
  • --ignored, -i โ€” Print ignored files.
  • --kind ARG, -k โ€” List entries of a particular kind: file, directory, symlink, tree-reference.
  • --null, -0 โ€” Use an ASCII NUL (\0) separator rather than a newline.
  • --quiet, -q โ€” Only display errors and warnings.
  • --recursive, -R โ€” Recurse into subdirectories.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --show-ids โ€” Show internal object ids.
  • --unknown, -u โ€” Print unknown files.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.
  • --versioned, -V โ€” Print versioned files.

See also: cat, status

List files in a tree. that's it, that's the vibe. ๐ŸŒณโœจ


๐Ÿ’œ brz merge [LOCATION]

Options:

  • --change ARG, -c โ€” Select changes introduced by the specified revision. See also "help revisionspec".
  • --directory ARG, -d โ€” Branch to merge into, rather than the one containing the working directory.
  • --force โ€” Merge even if the destination tree has uncommitted changes.
  • --help, -h โ€” Show help message.
  • --interactive, -i โ€” Select changes interactively.
  • --merge-type ARG โ€” Select a particular merge algorithm.
    • --diff3 โ€” Merge using external diff3.
    • --lca โ€” LCA-newness merge.
    • --merge3 โ€” Native diff3-style merge.
    • --weave โ€” Weave-based merge.
  • --preview โ€” Instead of merging, show a diff of the merge.
  • --pull โ€” If the destination is already completely merged into the source, pull from the source rather than merging. When this happens, you do not need to commit the result.
  • --quiet, -q โ€” Only display errors and warnings.
  • --remember โ€” Remember the specified location as a default.
  • --reprocess โ€” Reprocess to reduce spurious conflicts.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --show-base โ€” Show base revision text in conflicts.
  • --uncommitted โ€” Apply uncommitted changes from a working copy, instead of branch changes.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: remerge, send, status-flags, update

Perform a three-way merge. ๐Ÿ’…

The source of the merge can be specified either as a branch, or as a path to a file containing a merge directive generated with brz send. If neither is specified, the default is the upstream branch, or the branch most recently merged using --remember. The source of the merge may also be specified as a path to a file in another branch: in that case, only the modifications to that file are merged into the current working tree. picky and specific, love that for you. โœจ

When merging from a branch, by default brz tries to merge in all new work from the other branch, automatically determining an appropriate base revision. If that fails, you may need to give an explicit base. ๐Ÿ˜ฌ

To pick a different ending revision, pass "--revision OTHER". brz will try to merge in all new work up to and including revision OTHER.

If you specify two values, "--revision BASE..OTHER", only revisions BASE through OTHER โ€” excluding BASE but including OTHER โ€” will be merged. If this causes some revisions to be skipped, i.e. if the destination branch does not already contain revision BASE, such a merge is commonly referred to as a "cherrypick". Unlike a normal merge, Breezy does not currently track cherrypicks. The changes look like a normal commit, and the history of the changes from the other branch is not stored in the commit. so it's giving "trust me bro" energy, noted. ๐Ÿ’€

Revision numbers are always relative to the source branch. ๐Ÿ“Œ

Merge will do its best to combine the changes in two branches, but there are some kinds of problems only a human can fix. When it encounters those, it will mark a conflict. A conflict means you need to fix something, before you can commit. no skipping, bestie. ๐Ÿซถ

Use brz resolve when you have fixed a problem. See also brz conflicts.

If there is no default branch set, the first merge will set it (use --no-remember to avoid setting it). After that, you can omit the branch to use the default. To change the default, use --remember. The value will only be saved if the remote location can be accessed. ๐Ÿฆ‹

The results of the merge are placed into the destination working directory, where they can be reviewed (with brz diff), tested, and then committed to record the result of the merge. the whole glow-up pipeline: review โ†’ test โ†’ commit. โœจ

merge refuses to run if there are any uncommitted changes, unless --force is given. If --force is given, then the changes from the source will be merged with the current working tree, including any uncommitted changes in the tree. The --force option can also be used to create a merge revision which has more than two parents. (three-parent household! ๐Ÿ ๐Ÿ‘‘)

If one would like to merge changes from the working tree of the other branch without merging any committed revisions, the --uncommitted option can be given.

To select only some changes to merge, use "merge -i", which will prompt you to apply each diff hunk and file change, similar to "shelve". very hands-on, very curated. ๐ŸŽ€

Examples:

To merge all new revisions from brz.dev:

brz merge ../brz.dev

To merge changes up to and including revision 82 from brz.dev:

brz merge -r 82 ../brz.dev

To merge the changes introduced by 82, without previous changes:

brz merge -r 81..82 ../brz.dev

To apply a merge directive contained in /tmp/merge:

brz merge /tmp/merge

To create a merge revision with three parents from two branches feature1a and feature1b:

brz merge ../feature1a
brz merge ../feature1b --force
brz commit -m 'revision with three parents'

๐Ÿฆ‹ brz missing [OTHER_BRANCH]

Options:

  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --help, -h โ€” Show help message.
  • --include-merged โ€” Show all revisions in addition to the mainline ones.
  • --log-format ARG โ€” Use specified log format.
    • --gnu-changelog โ€” Format used by GNU ChangeLog files.
    • --line โ€” Log format with one line per revision.
    • --long โ€” Detailed log format.
    • --short โ€” Moderately short log format.
  • --mine-only โ€” Display changes in the local branch only.
  • --my-revision ARG โ€” Filter on local branch revisions (inclusive). See "help revisionspec" for details.
  • --other โ€” Same as --theirs-only.
  • --quiet, -q โ€” Only display errors and warnings.
  • --reverse โ€” Reverse the order of revisions.
  • --revision ARG, -r โ€” Filter on other branch revisions (inclusive). See "help revisionspec" for details.
  • --show-ids โ€” Show internal object ids.
  • --theirs-only โ€” Display changes in the remote branch only.
  • --this โ€” Same as --mine-only.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: merge, pull

Show unmerged/unpulled revisions between two branches. ๐Ÿ‘€ the "wait, what did I miss" command.

OTHER_BRANCH may be local or remote. ๐ŸŒ

To filter on a range of revisions, you can use the command -r begin..end. -r revision requests a specific revision, and -r ..end or -r begin.. are also valid. flexible queen. ๐Ÿ’…

Exit values:

  1. 1 โ€” some missing revisions
  2. 0 โ€” no missing revisions

Examples:

Determine the missing revisions between this and the branch at the remembered pull location:

brz missing

Determine the missing revisions between this and another branch:

brz missing http://server/branch

Determine the missing revisions up to a specific revision on the other branch:

brz missing -r ..-10

Determine the missing revisions up to a specific revision on this branch:

brz missing --my-revision ..-10

๐ŸŒธ brz mkdir DIR...

Options, bestie:

  • --help, -h โ€” show the help message ๐Ÿ’ฌ
  • --parents, -p โ€” no error if it already exists, and make parent directories as needed ๐Ÿช†
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --usage โ€” show the usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

Make a brand-new versioned directory, periodt. This is literally equivalent to creating the directory and then adding it. Two steps, one command, we love to see it ๐Ÿ’…


๐Ÿฆ‹ brz move

Just an alias for mv โ€” go read brz mv, babe โœจ


๐Ÿ’œ brz mv [NAMES...]

Options, one by one:

  • --after โ€” move only the brz identifier of the file, because the file has already been moved ๐Ÿ™ˆ
  • --auto โ€” automatically guess renames ๐Ÿ”ฎ
  • --dry-run โ€” avoid making changes when guessing renames, just peek ๐Ÿ‘€
  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

Aliases: move, rename

Move or rename a file. Iconic behaviour, no cap.

Usage:

brz mv OLDNAME NEWNAME
brz mv SOURCE... DESTINATION

If the last argument is a versioned directory, all the other names get moved into it. Otherwise there must be exactly two arguments, and the file is changed to a new name.

Here's the sneaky lil trick ๐Ÿซถ: if OLDNAME does not exist on the filesystem but is versioned, and NEWNAME does exist on the filesystem but is not versioned, then mv assumes you moved the file manually and only updates its internal inventory to reflect that change. Same deal when you're moving a whole bunch of SOURCE files to a DESTINATION.

Files cannot be moved between branches. Nope. Not happening. ๐Ÿ’€

๐ŸŽ€ brz nick [NICKNAME]

Options:

  • --directory ARG, -d โ€” branch to operate on, instead of the working directory ๐Ÿ“
  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

See also: info

Print or set the branch nickname ๐Ÿท๏ธ

If it's unset, the colocated branch name is used for colocated branches, and the branch directory name is used for other branches. Wanna print the current nickname? Just run it with no argument, easy ๐Ÿ’…

Bound branches use the nickname of their master branch unless it's set locally. Slay ๐Ÿซถ


๐ŸŒˆ brz pack [BRANCH_OR_REPO]

Options:

  • --clean-obsolete-packs โ€” delete obsolete packs to save disk space ๐Ÿงน
  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

See also: repositories

Compress the data within a repository ๐Ÿ—œ๏ธ

This operation compresses the data within a bazaar repository. As bazaar supports automatic packing of repositories, this operation is normally not required to be done manually. So like, lowkey you can just vibe and let it happen.

During the pack operation, bazaar takes a backup of existing repository data, i.e. pack files ๐Ÿ“ฆ This backup is eventually removed by bazaar automatically when it's safe to do so. To save disk space by removing those backed-up pack files, you can use the --clean-obsolete-packs option.

Warning: โš ๏ธ If you use --clean-obsolete-packs and your machine crashes during or immediately after repacking, you may be left with a state where the deletion has been written to disk but the new packs have not been. In this case the repository may be unusable. It's giving cursed. Be careful fr fr ๐Ÿ˜ญ

๐Ÿ“ brz patch [FILENAME]

Options:

  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --silent โ€” suppress chatter ๐Ÿค
  • --strip ARG, -p โ€” strip the smallest prefix containing num leading slashes from filenames โœ‚๏ธ
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

Apply a named patch to the current tree ๐Ÿฉน Easy as that.


๐Ÿงš brz ping LOCATION

Options:

  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

Pings a Bazaar smart server ๐Ÿ“ก

This command sends a 'hello' request to the given location using the brz smart protocol, and reports the response. Like a lil "u up? ๐Ÿ‘€" to the server, honestly.


๐Ÿ‘‘ brz plugins

Options:

  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

List the installed plugins ๐Ÿงฉ

This command displays the list of installed plugins, including the version of each plugin and a short description of each one.

--verbose shows the path where each plugin is located ๐Ÿ“‚

A plugin is an external component for Breezy that extends the revision control system, by adding or replacing code in Breezy. Plugins can do a whole variety of things, including overriding commands, adding new commands, providing additional network transports and customizing log output. Main character energy honestly โœจ

See the Breezy Plugin Guide <https://www.breezy-vcs.org/doc/plugins/en/> for further information on plugins, including where to find them and how to install them. Instructions are also provided there on how to write new plugins using the Python programming language ๐Ÿ


๐Ÿ’… brz praise

Alias for annotate โ€” see brz annotate ๐Ÿซถ


โญ brz pull [LOCATION]

Options, the whole squad:

  • --directory ARG, -d โ€” branch to pull into, rather than the one containing the working directory ๐Ÿ“
  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --local โ€” perform a local pull in a bound branch. Local pulls are not applied to the master branch ๐Ÿ 
  • --overwrite โ€” ignore differences between branches and overwrite unconditionally ๐Ÿ’ฅ
  • --overwrite-tags โ€” overwrite tags only ๐Ÿท๏ธ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --remember โ€” remember the specified location as a default ๐Ÿง 
  • --revision ARG, -r โ€” see help revisionspec for details ๐Ÿ”
  • --show-base โ€” show base revision text in conflicts ๐Ÿ“
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --verbose, -v โ€” show logs of pulled revisions ๐Ÿ—ฃ๏ธ

See also: push, send, status-flags, update

Turn this branch into a mirror of another branch ๐Ÿชž

By default, this command only works on branches that have not diverged. Branches are considered diverged if the destination branch's most recent commit is one that has not been merged (directly or indirectly) into the parent.

If branches have diverged, you can use brz merge to integrate the changes from one into the other. Once one branch has merged, the other should be able to pull it again. Teamwork bestie ๐Ÿค

If you want to replace your local changes and just want your branch to match the remote one, use pull --overwrite. This will work even if the two branches have diverged ๐Ÿ”ฅ

If there's no default location set, the first pull will set it (use --no-remember to avoid setting it). After that, you can omit the location to use the default. To change the default, use --remember. The value will only be saved if the remote location can be accessed.

The --verbose option will display the revisions pulled using the log_format configuration option. You can use a different format by overriding it with -Olog_format=<other_format> ๐Ÿ’…

Note: ๐Ÿ“Œ The location can be specified either in the form of a branch, or in the form of a path to a file containing a merge directive generated with brz send.

๐Ÿ”ฅ brz push [LOCATION]

Options, all of them, no skips:

  • --create-prefix โ€” create the path leading up to the branch if it does not already exist ๐Ÿช„
  • --directory ARG, -d โ€” branch to push from, rather than the one containing the working directory ๐Ÿ“
  • --help, -h โ€” show help message ๐Ÿ’ฌ
  • --lossy โ€” allow lossy push, i.e. dropping metadata that can't be represented in the target ๐Ÿซ 
  • --no-tree โ€” don't populate the working tree, even for protocols that support it ๐ŸŒณ
  • --overwrite โ€” ignore differences between branches and overwrite unconditionally ๐Ÿ’ฅ
  • --overwrite-tags โ€” overwrite tags only ๐Ÿท๏ธ
  • --quiet, -q โ€” only display errors and warnings ๐Ÿคซ
  • --remember โ€” remember the specified location as a default ๐Ÿง 
  • --revision ARG, -r โ€” see help revisionspec for details ๐Ÿ”
  • --stacked โ€” create a stacked branch that references the public location of the parent branch ๐Ÿฅž
  • --stacked-on ARG โ€” create a stacked branch that refers to another branch for the commit history. Only the work not present in the referenced branch is included in the branch created ๐Ÿงฑ
  • --strict โ€” refuse to push if there are uncommitted changes in the working tree; --no-strict disables the check โœ‹
  • --usage โ€” show usage message and options ๐Ÿ“‹
  • --use-existing-dir โ€” by default push will fail if the target directory exists, but does not already have a control directory. This flag will allow push to proceed ๐Ÿšช
  • --verbose, -v โ€” display more information ๐Ÿ—ฃ๏ธ

See also: pull, update, working-trees

Update a mirror of this branch ๐Ÿชž

The target branch will not have its working tree populated, because this is both expensive, and is not supported on remote file systems. Sorry babe ๐Ÿ˜ญ

Some smart servers or protocols may put the working tree in place in the future ๐Ÿ‘€

This command only works on branches that have not diverged. Branches are considered diverged if the destination branch's most recent commit is one that has not been merged (directly or indirectly) by the source branch.

If branches have diverged, you can use brz push --overwrite to replace the other branch completely, discarding its unmerged changes. Nuclear option, but it works ๐Ÿ’€

okay so if you wanna make sure the other branch actually has your different changes, you do a merge (peep brz help merge) from that other branch, and commit it. then you can push without --overwrite ๐Ÿ’…

If there's no default push location set yet, the very first push sets it (use --no-remember if you do NOT want it to stick around). After that you can just omit the location and it'll use the default. Wanna change the default? Use --remember. The value only gets saved if the remote location can actually be accessed, bestie. โœจ

The --verbose option will display the revisions pushed using the log_format configuration option. You can use a different format by overriding it with -Olog_format=<other_format>. ๐ŸŽ€


๐ŸŒธ brz reconcile [BRANCH] ๐ŸŒธ

Options:

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

See also: check

Reconcile brz metadata in a branch. ๐Ÿ’–

This can correct data mismatches that may have been caused by previous ghost operations or brz upgrades. Ngl, you should only run this command if brz check or a brz developer tells you to run it. Like, it's giving "trusted adults only" energy.

If a second branch is provided, cross-branch reconciliation is also attempted, which will check that data like the tree root id โ€” which was not present in very early brz versions โ€” is represented correctly in both branches. ๐Ÿ‘‘

While it's running it may also recompress data, which could save you some disk space or get you a performance gain. Slay.

The branch MUST be on a listable system such as local disk or sftp. No cap, no exceptions. ๐Ÿซถ

๐Ÿฆ‹ brz reconfigure [LOCATION] ๐Ÿฆ‹

Options:

  • --bind-to ARG โ€” Branch to bind checkout to.
  • --force โ€” Perform reconfiguration even if local changes will be lost.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --repository_trees ARG โ€” Whether new branches in the repository have trees.
  • --with-no-trees โ€” Reconfigure repository to not create working trees on branches by default.
  • --with-trees โ€” Reconfigure repository to create working trees on branches by default.
  • --repository_type ARG โ€” Location of the repository.
  • --standalone โ€” Reconfigure to be a standalone branch (i.e. stop using shared repository).
  • --use-shared โ€” Reconfigure to use a shared repository.
  • --stacked-on ARG โ€” Reconfigure a branch to be stacked on another branch.
  • --tree_type ARG โ€” The relation between branch and tree.
  • --branch โ€” Reconfigure to be an unbound branch with no working tree.
  • --checkout โ€” Reconfigure to be a bound branch with a working tree.
  • --lightweight-checkout โ€” Reconfigure to be a lightweight checkout (with no local history).
  • --tree โ€” Reconfigure to be an unbound branch with a working tree.
  • --unstacked โ€” Reconfigure a branch to be unstacked. This may require copying substantial data into it.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: branches, checkouts, standalone-trees, working-trees

Reconfigure the type of a brz directory. ๐ŸŒˆ

A target configuration must be specified โ€” like, you gotta pick one, bestie.

For checkouts, the bind-to location gets auto-detected if you don't specify it. The order of preference is:

  1. For a lightweight checkout, the current bound location.
  2. For branches that used to be checkouts, the previously-bound location.
  3. The push location.
  4. The parent location.

If none of these is available, you have to specify --bind-to. Periodt. ๐Ÿ’…


โœจ brz remerge [FILE...] โœจ

Options:

  • --help, -h โ€” Show help message.
  • --merge-type ARG โ€” Select a particular merge algorithm.
  • --diff3 โ€” Merge using external diff3.
  • --lca โ€” LCA-newness merge.
  • --merge3 โ€” Native diff3-style merge.
  • --weave โ€” Weave-based merge.
  • --quiet, -q โ€” Only display errors and warnings.
  • --reprocess โ€” Reprocess to reduce spurious conflicts.
  • --show-base โ€” Show base revision text in conflicts.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Redo a merge. ๐ŸŽ€

Use this if you wanna try a different merge technique while you're resolving conflicts. Some merge techniques are just better than others, and remerge lets you try different ones on different files. Obsessed tbh.

The options for remerge have the same meaning and defaults as the ones for merge. The difference is that remerge can (only) be run when there's a pending merge, and it lets you specify particular files.

Examples:

  1. Re-do the merge of all conflicted files, and show the base text in conflict regions, in addition to the usual THIS and OTHER texts:
brz remerge --show-base
  1. Re-do the merge of "foobar", using the weave merge algorithm, with additional processing to reduce the size of conflict regions:
brz remerge --merge-type weave --reprocess foobar

๐Ÿ’– brz remove [FILE...] ๐Ÿ’–

Options:

  • --file-deletion-strategy ARG โ€” The file deletion mode to be used.
  • --keep โ€” Delete from brz but leave the working copy.
  • --no-backup โ€” Don't backup changed files.
  • --safe โ€” Backup changed files (default).
  • --help, -h โ€” Show help message.
  • --new โ€” Only remove files that have never been committed.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Aliases: rm, del

Remove files or directories. ๐Ÿ—‘๏ธ

This makes Breezy stop tracking changes to the specified files. Breezy will delete them if they can easily be recovered using revert โ€” otherwise they get backed up (adding an extension of the form .~#~). If you give no options or parameters at all, Breezy will scan for files that are being tracked by Breezy but are missing in your tree, and stop tracking them for you. So helpful, honestly. ๐Ÿซถ


๐Ÿ’€ brz remove-branch [LOCATION] ๐Ÿ’€

Options:

  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --force โ€” Remove branch even if it is the active branch.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Alias: rmbranch

Remove a branch. ๐Ÿ‘‹

This will remove the branch from the specified location but will keep any working tree or repository in place. So like, the branch is gone but the vibes (and the files) remain.

Examples:

Remove the branch at repo/trunk:

brz remove-branch repo/trunk

๐ŸŒธ brz remove-tree [LOCATION...] ๐ŸŒธ

Options:

  • --force โ€” Remove the working tree even if it has uncommitted or shelved changes.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: checkout, working-trees

Remove the working tree from a given branch/checkout. ๐ŸŒณ

Since a lightweight checkout is little more than a working tree, this will refuse to run against one. Not me getting rejected by my own tool ๐Ÿ˜ญ

To re-create the working tree, use brz checkout.


๐Ÿฆ‹ brz rename ๐Ÿฆ‹

Alias for mv, see brz mv. ๐Ÿ’…


โญ brz renames [DIR] โญ

Options:

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

See also: status

Show list of renamed files. ๐Ÿ‘‘


๐Ÿ’œ brz resolve [FILE...] ๐Ÿ’œ

Options:

  • --action ARG โ€” How to resolve the conflict.
  • --auto โ€” Detect whether conflict has been resolved by user.
  • --done โ€” Marks the conflict as resolved.
  • --take-other โ€” Resolve the conflict taking the merged version into account.
  • --take-this โ€” Resolve the conflict preserving the version in the working tree.
  • --all โ€” Resolve all conflicts in this tree.
  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Alias: resolved

See also: conflicts

Mark a conflict as resolved. โœจ

Merge will do its best to combine the changes in two branches, but there are some kinds of problems only a human can fix. When it encounters those, it will mark a conflict. A conflict means you need to fix something before you can commit. Like, it's the merge asking you to be the main character for a sec.

Once you've fixed a problem, use brz resolve to automatically mark text conflicts as fixed, brz resolve FILE to mark a specific conflict as resolved, or brz resolve --all to mark all conflicts as resolved. You got this, bestie. ๐Ÿซถ


๐ŸŽ€ brz resolved ๐ŸŽ€

Alias for resolve, see brz resolve. ๐Ÿ’–


๐ŸŒˆ brz revert [FILE...] ๐ŸŒˆ

Options:

  • --forget-merges โ€” Remove pending merge marker, without changing any files.
  • --help, -h โ€” Show help message.
  • --no-backup โ€” Do not save backups of reverted files.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: cat, export, merge, shelve

Set files in the working tree back to the contents of a previous revision. Rewind time, iconic behaviour. โชโœจ

Giving it a list of files means it only reverts, like, those files. No list? Then bestie, it's reverting everything. ๐Ÿซถ If you don't hand it a revision with --revision, it just uses the working tree basis revision. And listen โ€” a revert only touches the working tree, periodt. It does not touch any revision history, not the branch, not the repository, not the working tree basis revision. History is safe. ๐Ÿ’…

Wanna remove only some changes without yeeting all the way back to a prior version? That's what merge is for, bestie. For example, merge . -r -2..-3 (do not forget the ., I'm begging you) will remove the changes introduced by the second last commit (-2), without affecting the changes introduced by the last commit (-1). โœจ Wanna pick off changes hunk-by-hunk? See the shelve command. And if you wanna update the branch to a specific revision or the latest revision, updating the working tree accordingly while preserving local changes, see the update command. ๐Ÿ‘‘

Uncommitted changes to files that are reverted will be discarded. Gone. Poof. ๐Ÿ˜ญ

But wait โ€” by default, any files that have been manually changed get backed up first. (Files changed only by merge do not get backed up, fyi.) Backup files have .~#~ appended to their name, where # is a number. Cute little safety net. ๐ŸŽ€

When you provide files, you can use their current pathname or the pathname from the target revision. So yeah, you can use revert to "undelete" a file by name. Iconic. ๐ŸŒธ And if you name a directory, all the contents of that directory get reverted.

If you have newly added files since the target revision, they will be removed. And if the files to be removed have been changed, backups get created as described above. Directories containing unknown files will not be deleted. ๐Ÿงš

The working tree keeps a list of revisions that have been merged but not yet committed. Those revisions get included as additional parents of the next commit. Normally, using revert clears that list as well as reverting the files. But if any files are specified, revert leaves the list of uncommitted merges alone and reverts only the files. So: use 'brz revert.' in the tree root to revert all files but keep the recorded merges, and 'brz revert --forget-merges' to clear the pending merge list without reverting any files. ๐Ÿฆ‹

Using brz revert --forget-merges, it's possible to apply all of the changes from a branch in a single revision. Here's the move: perform the merge as desired. Then doing revert with the --forget-merges option will keep the content of the tree as it was, but it will clear the list of pending merges. The next commit will then contain all of the changes that are present in the other branch, but without any other parent revisions. โญ But because this technique forgets where these changes originated, it may cause additional conflicts on later merges involving the same source and target branches. Not me warning you twice. ๐Ÿ’€


brz revno [LOCATION] ๐Ÿ’–

Options:

  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See help revisionspec for details.
  • --tree โ€” Show revno of working tree.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: info

Show current revision number. ๐Ÿ“Œ

This is equal to the number of revisions on this branch. Math is mathin', bestie. โœจ


brz rm ๐ŸŽ€

Alias for remove, see brz remove.


brz rmbranch ๐ŸŽ€

Alias for remove-branch, see brz remove-branch.


brz root [FILENAME] ๐ŸŒˆ

Options:

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

Show the tree root directory. ๐ŸŒณ

The root is the nearest enclosing directory with a control directory. That's the whole vibe check. ๐Ÿ‘‘


brz send [SUBMIT_BRANCH] [PUBLIC_BRANCH] ๐Ÿ’Œ

Options:

  • --body ARG โ€” Body for the email.
  • --format ARG โ€” Use the specified output format.
  • --from ARG, -f โ€” Branch to generate the submission from, rather than the one containing the working directory.
  • --help, -h โ€” Show help message.
  • --mail-to ARG โ€” Mail the request to this address.
  • --message ARG, -m โ€” Message string.
  • --no-bundle โ€” Do not include a bundle in the merge directive.
  • --no-patch โ€” Do not include a preview patch in the merge directive.
  • --output ARG, -o โ€” Write merge directive to this file or directory; use - for stdout.
  • --quiet, -q โ€” Only display errors and warnings.
  • --remember โ€” Remember submit and public branch.
  • --revision ARG, -r โ€” See help revisionspec for details.
  • --strict โ€” Refuse to send if there are uncommitted changes in the working tree, --no-strict disables the check.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: merge, pull

Mail or create a merge-directive for submitting changes. ๐Ÿ“ฌ

A merge directive provides many things needed for requesting merges:

  • A machine-readable description of the merge to perform
  • An optional patch that is a preview of the changes requested
  • An optional bundle of revision data, so that the changes can be applied directly from the merge directive, without retrieving data from a branch.

'brz send' creates a compact data set that, when applied using brz merge, has the same effect as merging from the source branch. No cap. ๐Ÿซถ

By default the merge directive is self-contained and can be applied to any branch containing submit_branch in its ancestory without needing access to the source branch.

If --no-bundle is specified, then Breezy doesn't send the contents of the revisions, but only a structured request to merge from the public_location. In that case the public_branch is needed and it must be up-to-date and accessible to the recipient. The public_branch is always included if known, so that people can check it later. ๐Ÿ‘€

The submit branch defaults to the parent of the source branch, but can be overridden. Both submit branch and public branch will be remembered in branch.conf the first time they are used for a particular branch. The source branch defaults to that containing the working directory, but can be changed using --from.

Both the submit branch and the public branch follow the usual behavior with respect to --remember: If there is no default location set, the first send will set it (use --no-remember to avoid setting it). After that, you can omit the location to use the default. To change the default, use --remember. The value will only be saved if the location can be accessed. ๐Ÿ’พ

In order to calculate those changes, brz must analyse the submit branch. Therefore it is most efficient for the submit branch to be a local mirror. If a public location is known for the submit_branch, that location is used in the merge directive. โšก

The default behaviour is to send the merge directive by mail, unless -o is given, in which case it is sent to a file.

Mail is sent using your preferred mail program. This should be transparent on Windows (it uses MAPI). On Unix, it requires the xdg-email utility. If the preferred client can't be found (or used), your editor will be used. ๐Ÿ™ˆ

To use a specific mail program, set the mail_client configuration option. Supported values for specific clients are "claws", "evolution", "kmail", "mail.app" (MacOS X's Mail.app), "mutt", and "thunderbird"; generic options are "default", "editor", "emacsclient", "mapi", and "xdg-email". Plugins may also add supported clients. ๐ŸŒธ

If mail is being sent, a to address is required. This can be supplied either on the commandline, by setting the submit_to configuration option in the branch itself or the child_submit_to configuration option in the submit branch. ๐Ÿ“ฎ

The merge directives created by brz send may be applied using brz merge or brz pull by specifying a file containing a merge directive as the location.

brz send makes extensive use of public locations to map local locations into URLs that can be used by other people. See 'brz help configuration' to set them, and use 'brz info' to display them. ๐ŸŒˆ


brz serve ๐Ÿ–ฅ๏ธ

Options:

  • --allow-writes โ€” By default the server is a readonly server. Supplying --allow-writes enables write access to the contents of the served directory and below.
Note that 'brz serve' does not perform authentication, so unless some form of external authentication is arranged, supplying this option leads to global uncontrolled write access to your file system. ๐Ÿ˜ญ Bestie. Please. Be careful.
  • --client-timeout ARG โ€” Override the default idle client timeout (5min).
  • --directory ARG, -d โ€” Serve contents of this directory.
  • --help, -h โ€” Show help message.
  • --inet โ€” Serve on stdin/out for use from inetd or sshd.
  • --listen ARG โ€” Listen for connections on nominated address.
  • --port ARG โ€” Listen for connections on nominated port. Passing 0 as the port number will result in a dynamically allocated port. The default port depends on the protocol.
  • --protocol ARG โ€” Protocol to serve.
    • --bzr โ€” The Bazaar smart server protocol over TCP. (default port: 4155)
    • --git โ€” Git Smart server protocol over TCP. (default port: 9418)
    • --git-receive-pack โ€” Git Smart server receive pack command. (inetd mode only)
    • --git-upload-pack โ€” Git Smart server upload pack command. (inetd mode only)
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Alias: server

Run the brz server. ๐Ÿ”ฅ


brz server ๐Ÿ’œ

Alias for serve, see brz serve.

brz shelve [FILE...]

Options:

  • --all โ€” Shelve all changes. Every last crumb, no crumbs left behind.
  • --destroy โ€” Destroy removed changes instead of shelving them. ๐Ÿ’€
  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --help, -h โ€” Show help message.
  • --list โ€” List shelved changes.
  • --message ARG, -m โ€” Message string.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.
  • --writer ARG โ€” Method to use for writing diffs.
  • --plain โ€” Plaintext diff output.

See also: configuration, unshelve

Temporarily set aside some changes from the current tree.

Okay bestie, listen โ€” shelve lets you temporarily put the changes you've made "on the shelf", like, out of the way ๐Ÿ‘‹, until a later time when you can bring them back from the shelf with the unshelve command. The changes are stored alongside your working tree, and so they aren't propagated along with your branch, nor will they survive its deletion. ๐Ÿซ  So don't go deleting stuff and expecting your shelf to be fine.

If shelve --list is specified, previously-shelved changes are listed. ๐Ÿ“‹

Shelve is intended to help separate several sets of changes that have been inappropriately mingled (we've all been there, no judgement ๐Ÿ’…). If you just want to get rid of all changes and you don't need to restore them later, use revert. If you want to shelve all text changes at once, use shelve --all.

If filenames are specified, only the changes to those files will be shelved. Other files will be left untouched. โœจ

If a revision is specified, changes since that revision will be shelved.

You can put multiple items on the shelf, and by default, unshelve will restore the most recently shelved changes. (Newest shelf item = main character energy ๐Ÿ‘‘)

For complicated changes, it is possible to edit the changes in a separate editor program to decide what the file remaining in the working copy should look like. To do this, add the configuration option:

change_editor = PROGRAM {new_path} {old_path}

where {new_path} is replaced with the path of the new version of the file and {old_path} is replaced with the path of the old version of the file. The PROGRAM should save the new file with the desired contents of the file in the working tree.


brz sign-my-commits [LOCATION] [COMMITTER]

Options:

  • --dry-run โ€” Don't actually sign anything, just print the revisions that would be signed. ๐Ÿ™ˆ
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Sign all commits by a given committer.

If location is not specified the local tree is used. If committer is not specified the default committer is used.

Heads up: this does not sign commits that already have signatures. Already-signed stays signed, periodt. โœ๏ธ

brz split TREE

Options:

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

See also: join

Split a subdirectory of a tree into a separate tree.

This command will produce a target tree in a format that supports rich roots, like rich-root or rich-root-pack. These formats cannot be converted into earlier formats like dirstate-tags. ๐Ÿ˜ญ So like, check yourself before you wreck yourself.

The TREE argument should be a subdirectory of a working tree. That subdirectory will be converted into an independent tree, with its own branch. Commits in the top-level tree will not apply to the new subtree. ๐Ÿฆ‹


brz st

Alias for "status", see "brz status". โœจ

brz stat

Alias for "status", see "brz status". โœจ


brz status [FILE...]

Options:

  • --change ARG, -c โ€” Select changes introduced by the specified revision. See also "help revisionspec".
  • --help, -h โ€” Show help message.
  • --no-classify โ€” Do not mark object type using indicator.
  • --no-pending โ€” Don't show pending merges.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --short, -S โ€” Use short status indicators.
  • --show-ids โ€” Show internal object ids.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.
  • --versioned, -V โ€” Only show versioned files.

Aliases: st, stat

See also: diff, revert, status-flags

Display status summary.

This reports on versioned and unknown files, reporting them grouped by state. Possible states are:

  • added โ€” Versioned in the working copy but not in the previous revision.
  • removed โ€” Versioned in the previous revision but removed or deleted in the working copy.
  • renamed โ€” Path of this file changed from the previous revision; the text may also have changed. This includes files whose parent directory was renamed.
  • modified โ€” Text has changed since the previous revision.
  • kind changed โ€” File kind has been changed (e.g. from file to directory).
  • unknown โ€” Not versioned and not matching an ignore pattern.

Additionally for directories, symlinks and files with a changed executable bit, Breezy indicates their type using a trailing character: /, @ or * respectively. These decorations can be disabled using the --no-classify option. ๐ŸŽ€

To see ignored files use brz ignored. For details on the changes to file texts, use brz diff.

Note that --short or -S gives status flags for each item, similar to Subversion's status command. To get output similar to svn -q, use brz status -SV. ๐Ÿ’…

If no arguments are specified, the status of the entire working directory is shown. Otherwise, only the status of the specified files or directories is reported. If a directory is given, status is reported for everything inside that directory. ๐Ÿ—‚๏ธ

Before merges are committed, the pending merge tip revisions are shown. To see all pending merge revisions, use the -v option. To skip the display of pending merge information altogether, use the no-pending option or specify a file/directory.

To compare the working directory to a specific revision, pass a single revision to the revision argument.

To see which files have changed in a specific revision, or between two revisions, pass a revision range to the revision argument. This will produce the same results as calling brz diff --summarize.


brz switch [TO_LOCATION]

Options:

  • --create-branch, -b โ€” Create the target branch from this one before switching to it.
  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --force โ€” Switch even if local commits will be lost. ๐Ÿ˜ฑ
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --store โ€” Store and restore uncommitted changes in the branch.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Set the branch of a checkout and update.

For lightweight checkouts, this changes the branch being referenced. For heavyweight checkouts, this checks that there are no local commits versus the current bound branch, then it makes the local branch a mirror of the new location and binds to it. ๐Ÿชž

In both cases, the working tree is updated and uncommitted changes are merged. The user can commit or revert these as they desire.

Pending merges need to be committed or reverted before using switch. No sneaking past this one. ๐Ÿšง

The path to the branch to switch to can be specified relative to the parent directory of the current branch. For example, if you are currently in a checkout of /path/to/branch, specifying newbranch will find a branch at /path/to/newbranch. ๐Ÿงญ

Bound branches use the nickname of its master branch unless it is set locally, in which case switching will update the local nickname to be that of the master.


brz tag [TAG_NAME]

Options:

  • --delete โ€” Delete this tag rather than placing it.
  • --directory ARG, -d โ€” Branch in which to place the tag.
  • --force โ€” Replace existing tags.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: commit, tags

Create, remove or modify a tag naming a revision.

Tags give human-meaningful names to revisions. ๐Ÿท๏ธ Commands that take a -r (--revision) option can be given -rtag:X, where X is any previously created tag.

Tags are stored in the branch. Tags are copied from one branch to another along when you branch, push, pull or merge. ๐Ÿ’ซ

It is an error to give a tag name that already exists unless you pass --force, in which case the tag is moved to point to the new revision.

To rename a tag (change the name but keep it on the same revision), run brz tag new-name -r tag:old-name and then brz tag --delete oldname.

If no tag name is specified it will be determined through the automatic_tag_name hook. This can e.g. be used to automatically tag upstream releases by reading configure.ac. See brz help hooks for details. ๐Ÿช


brz tags

Options:

  • --directory ARG, -d โ€” Branch whose tags should be displayed.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --show-ids โ€” Show internal object ids.
  • --sort ARG โ€” Sort tags by different criteria.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: tag

List tags.

This command shows a table of tag names and the revisions they reference. ๐Ÿ“Š So like, the whole tag roster, right there.

๐ŸŒˆ brz testament [BRANCH]

Options, bestie:

  • --help, -h โ€” Show help message.
  • --long โ€” Produce long-format testament.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --strict โ€” Produce a strict-format testament.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Show testament (signing-form) of a revision. ๐Ÿ’…


๐ŸŽ€ brz unbind

Options:

  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: bind, checkouts

Convert the current checkout into a regular branch. โœจ

After unbinding, the local branch is considered independent and subsequent commits will be local only. Like, it's on its own now, main character energy, no master branch holding it back. ๐Ÿ‘‘


๐Ÿฆ‹ brz uncommit [LOCATION]

Options:

  • --dry-run โ€” Don't actually make changes.
  • --force โ€” Say yes to all questions.
  • --help, -h โ€” Show help message.
  • --keep-tags โ€” Keep tags that point to removed revisions.
  • --local โ€” Only remove the commits from the local branch when in a checkout.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: commit

Remove the last committed revision. ๐Ÿซฃ

--verbose will print out what is being removed. --dry-run will go through all the motions, but not actually remove anything. It's giving "rehearsal, not the real show". ๐ŸŽญ

If --revision is specified, uncommit revisions to leave the branch at the specified revision. For example, "brz uncommit -r 15" will leave the branch at revision 15.

Uncommit leaves the working tree ready for a new commit. The only change it may make is to restore any pending merges that were present before the commit. ๐ŸŒธ


๐Ÿ’œ brz unshelve [SHELF_ID]

Options:

  • --action ARG โ€” The action to perform.
  • --apply โ€” Apply changes and remove from the shelf.
  • --delete-only โ€” Delete changes without applying them.
  • --dry-run โ€” Show changes, but do not apply or remove them.
  • --keep โ€” Apply changes but don't delete them.
  • --preview โ€” Instead of unshelving the changes, show the diff that would result from unshelving.
  • --directory ARG, -d โ€” Branch to operate on, instead of working directory.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: shelve

Restore shelved changes. ๐Ÿงš

By default, the most recently shelved changes are restored. However if you specify a shelf by id those changes will be restored instead. This works best when the changes don't depend on each other. iykyk โ€” interdependent shelves are lowkey a mess. ๐Ÿ’€


โญ brz up

Alias for "update", see "brz update".


๐ŸŒธ brz update [DIR]

Options:

  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --show-base โ€” Show base revision text in conflicts.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Alias: up

See also: pull, status-flags, working-trees

Update a working tree to a new revision. ๐ŸŒˆ

This will perform a merge of the destination revision (the tip of the branch, or the specified revision) into the working tree, and then make that revision the basis revision for the working tree.

You can use this to visit an older revision, or to update a working tree that is out of date from its branch. Time travel but make it version control. โณ

If there are any uncommitted changes in the tree, they will be carried across and remain as uncommitted changes after the update. To discard these changes, use 'brz revert'. The uncommitted changes may conflict with the changes brought in by the change in basis revision. โš ๏ธ

If the tree's branch is bound to a master branch, brz will also update the branch from the master.

You cannot update just a single file or directory, because each Breezy working tree has just a single basis revision. If you want to restore a file that has been removed locally, use 'brz revert' instead of 'brz update'. If you want to restore a file to its state in a previous revision, use 'brz revert' with a '-r' option, or use 'brz cat' to write out the old content of that file to a new location.

The 'dir' argument, if given, must be the location of the root of a working tree to update. By default, the working tree that contains the current working directory is used.


๐Ÿ‘‘ brz upgrade [URL]

Options:

  • --clean โ€” Remove the backup.bzr directory if successful.
  • --dry-run โ€” Show what would be done, but don't actually do anything.
  • --format ARG โ€” Upgrade to a specific format. See "brz help formats" for details.
  • --2a โ€” Format for the bzr 2.0 series.
  • --bzr โ€” Format for the bzr 2.0 series.
  • --default โ€” Format for the bzr 2.0 series.
  • --git โ€” GIT repository.
  • --git-bare โ€” Bare GIT repository (no working tree).
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

See also: check, formats, reconcile

Upgrade a repository, branch or working tree to a newer format. ๐Ÿ†™โœจ

When the default format has changed after a major new release of Bazaar/Breezy, you may be informed during certain operations that you should upgrade. Upgrading to a newer format may improve performance or make new features available. It may however limit interoperability with older repositories or with older versions of Bazaar or Breezy. Trade-offs, bestie, that's just how it is. ๐Ÿ’…

If you wish to upgrade to a particular format rather than the current default, that can be specified using the --format option. As a consequence, you can use the upgrade command this way to "downgrade" to an earlier format, though some conversions are a one way process (e.g. changing from the 1.x default to the 2.x default) so downgrading is not always possible.

A backup.bzr.~#~ directory is created at the start of the conversion process (where # is a number). By default, this is left there on completion. If the conversion fails, delete the new .bzr directory and rename this one back in its place. Use the --clean option to ask for the backup.bzr directory to be removed on successful conversion. Alternatively, you can delete it by hand if everything looks good afterwards.

If the location given is a shared repository, dependent branches are also converted provided the repository converts successfully. If the conversion of a branch fails, remaining branches are still tried.

For more information on upgrades, see the Breezy Upgrade Guide, https://www.breezy-vcs.org/doc/en/upgrade-guide/.


๐Ÿ”ฅ brz verify-signatures [LOCATION]

Options:

  • --acceptable-keys ARG, -k โ€” Comma separated list of GPG key patterns which are acceptable for verification.
  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Verify all commit signatures. ๐Ÿ”

Verifies that all commits in the branch are signed by known GnuPG keys.


๐Ÿ’– brz version

Options:

  • --help, -h โ€” Show help message.
  • --quiet, -q โ€” Only display errors and warnings.
  • --short โ€” Print just the version number.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Show version of brz. ๐ŸŽ€


๐Ÿ“ brz version-info [LOCATION]

Options:

  • --all โ€” Include all possible information.
  • --check-clean โ€” Check if tree is clean.
  • --format ARG โ€” Select the output format.
  • --custom โ€” Version info in Custom template-based format.
  • --python โ€” Version info in Python format.
  • --rio โ€” Version info in RIO (simple text) format (default).
  • --yaml โ€” Version info in YAML format.
  • --help, -h โ€” Show help message.
  • --include-file-revisions โ€” Include the last revision for each file.
  • --include-history โ€” Include the revision-history.
  • --quiet, -q โ€” Only display errors and warnings.
  • --revision ARG, -r โ€” See "help revisionspec" for details.
  • --template ARG โ€” Template for the output.
  • --usage โ€” Show usage message and options.
  • --verbose, -v โ€” Display more information.

Show version information about this tree. ๐ŸŒณ

You can use this command to add information about version into source code of an application. The output can be in one of the supported formats or in a custom format based on a template.

For example:

brz version-info --custom \
  --template="#define VERSION_INFO \"Project 1.2.3 (r{revno})\"\n"

will produce a C header file with formatted string containing the current revision number. Other supported variables in templates are:

  • {date} - date of the last revision
  • {build_date} - current date
  • {revno} - revision number
  • {revision_id} - revision id
  • {branch_nick} - branch nickname
  • {clean} - 0 if the source tree contains uncommitted changes, otherwise 1

brz view [FILE...] ๐Ÿฆ‹

Options, bestie, here they all are:

  • --all โ€” apply the list or delete action to every view. all of them. the whole roster.
  • --delete โ€” yeet the view ๐Ÿ—‘๏ธ
  • --help, -h โ€” show the help message.
  • --name ARG โ€” the name of the view you wanna define, list, or delete.
  • --quiet, -q โ€” only show errors and warnings. no chatter.
  • --switch ARG โ€” the name of the view to switch over to.
  • --usage โ€” show the usage message and the options.
  • --verbose, -v โ€” spill more info, we love a yapper.

Manage filtered views. periodt.

So like โ€” views are basically a mask laid over the tree ๐ŸŒธ so you can lock in on just a subset of a tree while you do your work. Once you've made a view, any command that takes a list of files โ€” status, diff, commit, etc. โ€” effectively gets that file list handed to it implicitly, every single time. you can still pass an explicit list of files, but heads up: those files have to be within the current view. no sneaking outside the mask, bestie.

Most of the time a view has a short life-span: you make it to land one specific change, and you delete it once that change is committed. iconic, efficient, gone. but other times you might wanna create one or more named views and hop between them ๐Ÿ‘‘

And listen โ€” to disable the current view without deleting it, you switch to the pseudo view called off. super useful when you need to see the whole tree for an operation or two (like merge) but you're absolutely gonna switch back to your view after. do not panic, your view is still there ๐Ÿ’…

Examples, because reading them is easier than me explaining them:

To define the current view:

brz view file1 dir1 ...

To list the current view:

brz view

To delete the current view:

brz view --delete

To disable the current view without deleting it:

brz view --switch off

To define a named view and switch to it:

brz view --name view-name file1 dir1 ...

To list a named view:

brz view --name view-name

To delete a named view:

brz view --name view-name --delete

To switch to a named view:

brz view --switch view-name

To list all views defined:

brz view --all

To delete all views:

brz view --delete --all

brz whoami [NAME] ๐Ÿชช

Options, all of them:

  • --branch โ€” set the identity for the current branch instead of globally.
  • --directory ARG, -d โ€” the branch to operate on, instead of the working directory.
  • --email โ€” display the email address only.
  • --help, -h โ€” show the help message.
  • --quiet, -q โ€” only show errors and warnings.
  • --usage โ€” show the usage message and options.
  • --verbose, -v โ€” display more information.

Show or set the brz user id. that's it, that's the gig ๐ŸŽ€

Examples:

Show the email of the current user:

brz whoami --email

Set the current user:

brz whoami "Frank Chu <fchu@example.com>"

โœจ ENVIRONMENT โœจ ๐ŸŒˆ

  • BRZPATH โ€” path where brz is to look for shell plugin external commands.
  • BRZ_EMAIL โ€” e-mail address of the user. overrides EMAIL.
  • EMAIL โ€” e-mail address of the user.
  • BRZ_EDITOR โ€” editor for editing commit messages. overrides EDITOR.
  • EDITOR โ€” editor for editing commit messages.
  • BRZ_PLUGIN_PATH โ€” paths where brz should look for plugins.
  • BRZ_DISABLE_PLUGINS โ€” plugins that brz should not load.
  • BRZ_PLUGINS_AT โ€” plugins to load from a directory not in BRZ_PLUGIN_PATH.
  • BRZ_HOME โ€” directory holding the breezy config dir. overrides HOME.
  • BRZ_HOME (Win32) โ€” directory holding the breezy config dir. overrides APPDATA and HOME.
  • BZR_REMOTE_PATH โ€” full name of the remote brz command (for brz+ssh:// URLs).
  • BRZ_SSH โ€” path to the SSH client, or one of paramiko, openssh, sshcorp, plink or lsh.
  • BRZ_LOG โ€” location of brz.log (use '/dev/null' to suppress the log).
  • BRZ_LOG (Win32) โ€” location of brz.log (use 'NUL' to suppress the log).
  • BRZ_COLUMNS โ€” override the implicit terminal width.
  • BRZ_CONCURRENCY โ€” number of processes that can be run concurrently (selftest).
  • BRZ_PROGRESS_BAR โ€” override the progress display. values are 'none' or 'text'.
  • BRZ_PDB โ€” control whether to launch a debugger on error.
  • BRZ_SIGQUIT_PDB โ€” control whether SIGQUIT behaves normally or invokes a breakin debugger.
  • BRZ_TEXTUI_INPUT โ€” force console input mode for prompts to line-based (instead of char-based).

๐ŸŽ€ FILES ๐ŸŽ€

  • ~/.config/breezy/breezy.conf โ€” contains the user's default configuration. the section [DEFAULT] is used to define general configuration that gets applied everywhere. and the section [ALIASES] can be used to create command aliases for commonly used options. obsessed with that actually.

A typical config file might look something like:

[DEFAULT]
email=John Doe <jdoe@isp.com>
[ALIASES]
commit = commit --strict
log10 = log --short -r -10..-1

๐Ÿ’œ SEE ALSO ๐Ÿ’œ

that's genuinely the whole list bestie, no other pages linked here โ€” so go forth and read this one properly, fr fr.

and that's a wrap on brz(1) ๐Ÿซถ you made it to the end of all thirteen parts, main character energy honestly. this one's straight from the Breezy manual โ€” the source and version and the date are all sitting right there in the footer, so go check 'em if you need the receipts. slay, bye ๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from
  • fedora 44: breezy 3.3.21-2.fc44 ยท GPL-2.0-or-later AND (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND (Unlicense OR MIT)
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms