239
239
# opens the branch?)
241
241
class cmd_status(Command):
242
"""Display status summary.
242
__doc__ = """Display status summary.
244
244
This reports on versioned and unknown files, reporting them
245
245
grouped by state. Possible states are:
334
334
class cmd_cat_revision(Command):
335
"""Write out metadata for a revision.
335
__doc__ = """Write out metadata for a revision.
337
337
The revision to print can either be specified by a specific
338
338
revision identifier, or you can use --revision.
392
392
class cmd_dump_btree(Command):
393
"""Dump the contents of a btree index file to stdout.
393
__doc__ = """Dump the contents of a btree index file to stdout.
395
395
PATH is a btree index file, it can be any URL. This includes things like
396
396
.bzr/repository/pack-names, or .bzr/repository/indices/a34b3a...ca4a4.iix
473
473
class cmd_remove_tree(Command):
474
"""Remove the working tree from a given branch/checkout.
474
__doc__ = """Remove the working tree from a given branch/checkout.
476
476
Since a lightweight checkout is little more than a working tree
477
477
this will refuse to run against one.
504
504
if (working.has_changes()):
505
505
raise errors.UncommittedChanges(working)
507
working_path = working.bzrdir.root_transport.base
508
branch_path = working.branch.bzrdir.root_transport.base
509
if working_path != branch_path:
507
if working.user_url != working.branch.user_url:
510
508
raise errors.BzrCommandError("You cannot remove the working tree"
511
509
" from a lightweight checkout")
552
550
class cmd_revision_info(Command):
553
"""Show revision number and revision id for a given revision identifier.
551
__doc__ = """Show revision number and revision id for a given revision identifier.
556
554
takes_args = ['revision_info*']
614
612
class cmd_add(Command):
615
"""Add specified files or directories.
613
__doc__ = """Add specified files or directories.
617
615
In non-recursive mode, all the named items are added, regardless
618
616
of whether they were previously ignored. A warning is given if
737
735
class cmd_inventory(Command):
738
"""Show inventory of the current working copy or a revision.
736
__doc__ = """Show inventory of the current working copy or a revision.
740
738
It is possible to limit the output to a particular entry
741
739
type using the --kind option. For example: --kind file.
935
933
class cmd_pull(Command):
936
"""Turn this branch into a mirror of another branch.
934
__doc__ = """Turn this branch into a mirror of another branch.
938
936
By default, this command only works on branches that have not diverged.
939
937
Branches are considered diverged if the destination branch's most recent
1062
1060
class cmd_push(Command):
1063
"""Update a mirror of this branch.
1061
__doc__ = """Update a mirror of this branch.
1065
1063
The target branch will not have its working tree populated because this
1066
1064
is both expensive, and is not supported on remote file systems.
1135
1133
revision_id = None
1136
1134
if tree is not None and revision_id is None:
1137
tree.warn_if_changed_or_out_of_date(
1138
strict, 'push_strict', 'Use --no-strict to force the push.')
1135
tree.check_changed_or_out_of_date(
1136
strict, 'push_strict',
1137
more_error='Use --no-strict to force the push.',
1138
more_warning='Uncommitted changes will not be pushed.')
1139
1139
# Get the stacked_on branch, if any
1140
1140
if stacked_on is not None:
1141
1141
stacked_on = urlutils.normalize_url(stacked_on)
1175
1175
class cmd_branch(Command):
1176
"""Create a new branch that is a copy of an existing branch.
1176
__doc__ = """Create a new branch that is a copy of an existing branch.
1178
1178
If the TO_LOCATION is omitted, the last component of the FROM_LOCATION will
1179
1179
be used. In other words, "branch ../foo/bar" will attempt to create ./bar.
1288
1288
class cmd_checkout(Command):
1289
"""Create a new checkout of an existing branch.
1289
__doc__ = """Create a new checkout of an existing branch.
1291
1291
If BRANCH_LOCATION is omitted, checkout will reconstitute a working tree for
1292
1292
the branch found in '.'. This is useful if you have removed the working tree
1389
1389
class cmd_update(Command):
1390
"""Update a tree to have the latest code committed to its branch.
1390
__doc__ = """Update a tree to have the latest code committed to its branch.
1392
1392
This will perform a merge into the working tree, and may generate
1393
1393
conflicts. If you have any local changes, you will still
1462
1462
_mod_revision.ensure_null(tree.last_revision()))
1463
1463
note('Updated to revision %s of branch %s' %
1464
1464
('.'.join(map(str, revno)), branch_location))
1465
if tree.get_parent_ids()[1:] != existing_pending_merges:
1465
parent_ids = tree.get_parent_ids()
1466
if parent_ids[1:] and parent_ids[1:] != existing_pending_merges:
1466
1467
note('Your local commits will now show as pending merges with '
1467
1468
"'bzr status', and can be committed with 'bzr commit'.")
1468
1469
if conflicts != 0:
1474
1475
class cmd_info(Command):
1475
"""Show information about a working tree, branch or repository.
1476
__doc__ = """Show information about a working tree, branch or repository.
1477
1478
This command will show all known locations and formats associated to the
1478
1479
tree, branch or repository.
1518
1519
class cmd_remove(Command):
1519
"""Remove files or directories.
1520
__doc__ = """Remove files or directories.
1521
1522
This makes bzr stop tracking changes to the specified files. bzr will delete
1522
1523
them if they can easily be recovered using revert. If no options or
1572
1573
class cmd_file_id(Command):
1573
"""Print file_id of a particular file or directory.
1574
__doc__ = """Print file_id of a particular file or directory.
1575
1576
The file_id is assigned when the file is first added and remains the
1576
1577
same through all revisions where the file exists, even when it is
1594
1595
class cmd_file_path(Command):
1595
"""Print path of file_ids to a file or directory.
1596
__doc__ = """Print path of file_ids to a file or directory.
1597
1598
This prints one line for each directory down to the target,
1598
1599
starting at the branch root.
1616
1617
class cmd_reconcile(Command):
1617
"""Reconcile bzr metadata in a branch.
1618
__doc__ = """Reconcile bzr metadata in a branch.
1619
1620
This can correct data mismatches that may have been caused by
1620
1621
previous ghost operations or bzr upgrades. You should only
1660
1661
class cmd_ancestry(Command):
1661
"""List all revisions merged into this branch."""
1662
__doc__ = """List all revisions merged into this branch."""
1663
1664
_see_also = ['log', 'revision-history']
1664
1665
takes_args = ['location?']
1794
1795
class cmd_init_repository(Command):
1795
"""Create a shared repository for branches to share storage space.
1796
__doc__ = """Create a shared repository for branches to share storage space.
1797
1798
New branches created under the repository directory will store their
1798
1799
revisions in the repository, not in the branch directory. For branches
1854
1855
class cmd_diff(Command):
1855
"""Show differences in the working tree, between revisions or branches.
1856
__doc__ = """Show differences in the working tree, between revisions or branches.
1857
1858
If no arguments are given, all changes for the current tree are listed.
1858
1859
If files are given, only the changes in those files are listed.
1955
1956
@display_command
1956
1957
def run(self, revision=None, file_list=None, diff_options=None,
1957
1958
prefix=None, old=None, new=None, using=None, format=None):
1958
from bzrlib.diff import (get_trees_and_branches_to_diff,
1959
from bzrlib.diff import (get_trees_and_branches_to_diff_locked,
1959
1960
show_diff_trees)
1961
1962
if (prefix is None) or (prefix == '0'):
1983
1984
(old_tree, new_tree,
1984
1985
old_branch, new_branch,
1985
specific_files, extra_trees) = get_trees_and_branches_to_diff(
1986
file_list, revision, old, new, apply_view=True)
1986
specific_files, extra_trees) = get_trees_and_branches_to_diff_locked(
1987
file_list, revision, old, new, self.add_cleanup, apply_view=True)
1987
1988
return show_diff_trees(old_tree, new_tree, sys.stdout,
1988
1989
specific_files=specific_files,
1989
1990
external_diff_options=diff_options,
1995
1996
class cmd_deleted(Command):
1996
"""List files deleted in the working tree.
1997
__doc__ = """List files deleted in the working tree.
1998
1999
# TODO: Show files deleted since a previous revision, or
1999
2000
# between two revisions.
2113
2114
class cmd_log(Command):
2114
"""Show historical log for a branch or subset of a branch.
2115
__doc__ = """Show historical log for a branch or subset of a branch.
2116
2117
log is bzr's default tool for exploring the history of a branch.
2117
2118
The branch to use is taken from the first parameter. If no parameters
2298
2299
help='Show changes made in each revision as a patch.'),
2299
2300
Option('include-merges',
2300
2301
help='Show merged revisions like --levels 0 does.'),
2302
Option('exclude-common-ancestry',
2303
help='Display only the revisions that are not part'
2304
' of both ancestries (require -rX..Y)'
2302
2307
encoding_type = 'replace'
2315
2320
show_diff=False,
2316
include_merges=False):
2321
include_merges=False,
2322
exclude_common_ancestry=False,
2317
2324
from bzrlib.log import (
2319
2326
make_log_request_dict,
2320
2327
_get_info_for_log_files,
2322
2329
direction = (forward and 'forward') or 'reverse'
2330
if (exclude_common_ancestry
2331
and (revision is None or len(revision) != 2)):
2332
raise errors.BzrCommandError(
2333
'--exclude-common-ancestry requires -r with two revisions')
2323
2334
if include_merges:
2324
2335
if levels is None:
2418
2429
direction=direction, specific_fileids=file_ids,
2419
2430
start_revision=rev1, end_revision=rev2, limit=limit,
2420
2431
message_search=message, delta_type=delta_type,
2421
diff_type=diff_type, _match_using_deltas=match_using_deltas)
2432
diff_type=diff_type, _match_using_deltas=match_using_deltas,
2433
exclude_common_ancestry=exclude_common_ancestry,
2422
2435
Logger(b, rqst).show(lf)
2484
2497
class cmd_touching_revisions(Command):
2485
"""Return revision-ids which affected a particular file.
2498
__doc__ = """Return revision-ids which affected a particular file.
2487
2500
A more user-friendly interface is "bzr log FILE".
2648
2661
using this command or directly by using an editor, be sure to commit
2664
Bazaar also supports a global ignore file ~/.bazaar/ignore. On Windows
2665
the global ignore file can be found in the application data directory as
2666
C:\\Documents and Settings\\<user>\\Application Data\\Bazaar\\2.0\\ignore.
2667
Global ignores are not touched by this command. The global ignore file
2668
can be edited directly using an editor.
2651
2670
Patterns prefixed with '!' are exceptions to ignore patterns and take
2652
2671
precedence over regular ignores. Such exceptions are used to specify
2653
2672
files that should be versioned which would otherwise be ignored.
2694
2713
_see_also = ['status', 'ignored', 'patterns']
2695
2714
takes_args = ['name_pattern*']
2696
2715
takes_options = [
2697
Option('old-default-rules',
2698
help='Write out the ignore rules bzr < 0.9 always used.')
2716
Option('default-rules',
2717
help='Display the default ignore rules that bzr uses.')
2701
def run(self, name_pattern_list=None, old_default_rules=None):
2720
def run(self, name_pattern_list=None, default_rules=None):
2702
2721
from bzrlib import ignores
2703
if old_default_rules is not None:
2704
# dump the rules and exit
2705
for pattern in ignores.OLD_DEFAULTS:
2722
if default_rules is not None:
2723
# dump the default rules and exit
2724
for pattern in ignores.USER_DEFAULTS:
2706
2725
self.outf.write("%s\n" % pattern)
2708
2727
if not name_pattern_list:
2709
2728
raise errors.BzrCommandError("ignore requires at least one "
2710
"NAME_PATTERN or --old-default-rules")
2729
"NAME_PATTERN or --default-rules.")
2711
2730
name_pattern_list = [globbing.normalize_pattern(p)
2712
2731
for p in name_pattern_list]
2713
2732
for name_pattern in name_pattern_list:
2737
2756
class cmd_ignored(Command):
2738
"""List ignored files and the patterns that matched them.
2757
__doc__ = """List ignored files and the patterns that matched them.
2740
2759
List all the ignored files and the ignore pattern that caused the file to
2784
2803
class cmd_export(Command):
2785
"""Export current or past revision to a destination directory or archive.
2804
__doc__ = """Export current or past revision to a destination directory or archive.
2787
2806
If no revision is specified this exports the last committed revision.
2942
2961
class cmd_commit(Command):
2943
"""Commit changes into a new revision.
2962
__doc__ = """Commit changes into a new revision.
2945
2964
An explanatory message needs to be given for each commit. This is
2946
2965
often done by using the --message option (getting the message from the
3054
3073
"the master branch until a normal commit "
3055
3074
"is performed."
3076
Option('show-diff', short_name='p',
3058
3077
help='When no message is supplied, show the diff along'
3059
3078
' with the status summary in the message editor.'),
3208
3227
class cmd_check(Command):
3209
"""Validate working tree structure, branch consistency and repository history.
3228
__doc__ = """Validate working tree structure, branch consistency and repository history.
3211
3230
This command checks various invariants about branch and repository storage
3212
3231
to detect data corruption or bzr bugs.
3278
3297
class cmd_upgrade(Command):
3279
"""Upgrade branch storage to current format.
3298
__doc__ = """Upgrade branch storage to current format.
3281
3300
The check command or bzr developers may sometimes advise you to run
3282
3301
this command. When the default format has changed you may also be warned
3352
3371
class cmd_nick(Command):
3353
"""Print or set the branch nickname.
3372
__doc__ = """Print or set the branch nickname.
3355
3374
If unset, the tree root directory name is used as the nickname.
3356
3375
To print the current nickname, execute with no argument.
3446
3465
class cmd_selftest(Command):
3447
"""Run internal test suite.
3466
__doc__ = """Run internal test suite.
3449
3468
If arguments are given, they are regular expressions that say which tests
3450
3469
should run. Tests matching any expression are run, and other tests are
3591
3610
raise errors.BzrCommandError("subunit not available. subunit "
3592
3611
"needs to be installed to use --subunit.")
3593
3612
self.additional_selftest_args['runner_class'] = SubUnitBzrRunner
3613
# On Windows, disable automatic conversion of '\n' to '\r\n' in
3614
# stdout, which would corrupt the subunit stream.
3615
if sys.platform == "win32" and sys.stdout.fileno() >= 0:
3617
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
3595
3619
self.additional_selftest_args.setdefault(
3596
3620
'suite_decorators', []).append(parallel)
3656
3680
class cmd_find_merge_base(Command):
3657
"""Find and print a base revision for merging two branches."""
3681
__doc__ = """Find and print a base revision for merging two branches."""
3658
3682
# TODO: Options to specify revisions on either side, as if
3659
3683
# merging only part of the history.
3660
3684
takes_args = ['branch', 'other']
3682
3706
class cmd_merge(Command):
3683
"""Perform a three-way merge.
3707
__doc__ = """Perform a three-way merge.
3685
3709
The source of the merge can be specified either in the form of a branch,
3686
3710
or in the form of a path to a file containing a merge directive generated
4043
4067
class cmd_remerge(Command):
4068
__doc__ = """Redo a merge.
4046
4070
Use this if you want to try a different merge technique while resolving
4047
4071
conflicts. Some merge techniques are better than others, and remerge
4138
4162
class cmd_revert(Command):
4139
"""Revert files to a previous revision.
4163
__doc__ = """Revert files to a previous revision.
4141
4165
Giving a list of files will revert only those files. Otherwise, all files
4142
4166
will be reverted. If the revision is not specified with '--revision', the
4193
4217
def run(self, revision=None, no_backup=False, file_list=None,
4194
4218
forget_merges=None):
4195
4219
tree, file_list = tree_files(file_list)
4220
tree.lock_tree_write()
4197
4221
self.add_cleanup(tree.unlock)
4198
4222
if forget_merges:
4199
4223
tree.set_parent_ids(tree.get_parent_ids()[:1])
4239
4263
class cmd_shell_complete(Command):
4240
"""Show appropriate completions for context.
4264
__doc__ = """Show appropriate completions for context.
4242
4266
For a list of all available commands, say 'bzr shell-complete'.
4427
4451
class cmd_pack(Command):
4428
"""Compress the data within a repository."""
4452
__doc__ = """Compress the data within a repository.
4454
This operation compresses the data within a bazaar repository. As
4455
bazaar supports automatic packing of repository, this operation is
4456
normally not required to be done manually.
4458
During the pack operation, bazaar takes a backup of existing repository
4459
data, i.e. pack files. This backup is eventually removed by bazaar
4460
automatically when it is safe to do so. To save disk space by removing
4461
the backed up pack files, the --clean-obsolete-packs option may be
4464
Warning: If you use --clean-obsolete-packs and your machine crashes
4465
during or immediately after repacking, you may be left with a state
4466
where the deletion has been written to disk but the new packs have not
4467
been. In this case the repository may be unusable.
4430
4470
_see_also = ['repositories']
4431
4471
takes_args = ['branch_or_repo?']
4473
Option('clean-obsolete-packs', 'Delete obsolete packs to save disk space.'),
4433
def run(self, branch_or_repo='.'):
4476
def run(self, branch_or_repo='.', clean_obsolete_packs=False):
4434
4477
dir = bzrdir.BzrDir.open_containing(branch_or_repo)[0]
4436
4479
branch = dir.open_branch()
4437
4480
repository = branch.repository
4438
4481
except errors.NotBranchError:
4439
4482
repository = dir.open_repository()
4483
repository.pack(clean_obsolete_packs=clean_obsolete_packs)
4443
4486
class cmd_plugins(Command):
4444
"""List the installed plugins.
4487
__doc__ = """List the installed plugins.
4446
4489
This command displays the list of installed plugins including
4447
4490
version of plugin and a short description of each.
4488
4531
class cmd_testament(Command):
4489
"""Show testament (signing-form) of a revision."""
4532
__doc__ = """Show testament (signing-form) of a revision."""
4490
4533
takes_options = [
4492
4535
Option('long', help='Produce long-format testament.'),
4520
4563
class cmd_annotate(Command):
4521
"""Show the origin of each line in a file.
4564
__doc__ = """Show the origin of each line in a file.
4523
4566
This prints out the given file with an annotation on the left side
4524
4567
indicating which revision, author and date introduced the change.
4573
4616
class cmd_re_sign(Command):
4574
"""Create a digital signature for an existing revision."""
4617
__doc__ = """Create a digital signature for an existing revision."""
4575
4618
# TODO be able to replace existing ones.
4577
4620
hidden = True # is this right ?
4639
4682
class cmd_bind(Command):
4640
"""Convert the current branch into a checkout of the supplied branch.
4683
__doc__ = """Convert the current branch into a checkout of the supplied branch.
4684
If no branch is supplied, rebind to the last bound location.
4642
4686
Once converted into a checkout, commits must succeed on the master branch
4643
4687
before they will be applied to the local branch.
4679
4723
class cmd_unbind(Command):
4680
"""Convert the current checkout into a regular branch.
4724
__doc__ = """Convert the current checkout into a regular branch.
4682
4726
After unbinding, the local branch is considered independent and subsequent
4683
4727
commits will be local only.
4696
4740
class cmd_uncommit(Command):
4697
"""Remove the last committed revision.
4741
__doc__ = """Remove the last committed revision.
4699
4743
--verbose will print out what is being removed.
4700
4744
--dry-run will go through all the motions, but not actually
4804
4848
class cmd_break_lock(Command):
4805
"""Break a dead lock on a repository, branch or working directory.
4849
__doc__ = """Break a dead lock on a repository, branch or working directory.
4807
4851
CAUTION: Locks should only be broken when you are sure that the process
4808
4852
holding the lock has been stopped.
4829
4873
class cmd_wait_until_signalled(Command):
4830
"""Test helper for test_start_and_stop_bzr_subprocess_send_signal.
4874
__doc__ = """Test helper for test_start_and_stop_bzr_subprocess_send_signal.
4832
4876
This just prints a line to signal when it is ready, then blocks on stdin.
4955
4999
class cmd_split(Command):
4956
"""Split a subdirectory of a tree into a separate tree.
5000
__doc__ = """Split a subdirectory of a tree into a separate tree.
4958
5002
This command will produce a target tree in a format that supports
4959
5003
rich roots, like 'rich-root' or 'rich-root-pack'. These formats cannot be
4981
5025
class cmd_merge_directive(Command):
4982
"""Generate a merge directive for auto-merge tools.
5026
__doc__ = """Generate a merge directive for auto-merge tools.
4984
5028
A directive requests a merge to be performed, and also provides all the
4985
5029
information necessary to do so. This means it must either include a
5197
5241
class cmd_bundle_revisions(cmd_send):
5198
"""Create a merge-directive for submitting changes.
5242
__doc__ = """Create a merge-directive for submitting changes.
5200
5244
A merge directive provides many things needed for requesting merges:
5270
5314
class cmd_tag(Command):
5271
"""Create, remove or modify a tag naming a revision.
5315
__doc__ = """Create, remove or modify a tag naming a revision.
5273
5317
Tags give human-meaningful names to revisions. Commands that take a -r
5274
5318
(--revision) option can be given -rtag:X, where X is any previously
5508
5552
class cmd_switch(Command):
5509
"""Set the branch of a checkout and update.
5553
__doc__ = """Set the branch of a checkout and update.
5511
5555
For lightweight checkouts, this changes the branch being referenced.
5512
5556
For heavyweight checkouts, this checks that there are no local commits
5604
5648
class cmd_view(Command):
5605
"""Manage filtered views.
5649
__doc__ = """Manage filtered views.
5607
5651
Views provide a mask over the tree so that users can focus on
5608
5652
a subset of a tree when doing their work. After creating a view,
5803
5847
class cmd_shelve(Command):
5804
"""Temporarily set aside some changes from the current tree.
5848
__doc__ = """Temporarily set aside some changes from the current tree.
5806
5850
Shelve allows you to temporarily put changes you've made "on the shelf",
5807
5851
ie. out of the way, until a later time when you can bring them back from
5878
5922
class cmd_unshelve(Command):
5879
"""Restore shelved changes.
5923
__doc__ = """Restore shelved changes.
5881
5925
By default, the most recently shelved changes are restored. However if you
5882
5926
specify a shelf by id those changes will be restored instead. This works
5910
5954
class cmd_clean_tree(Command):
5911
"""Remove unwanted files from working tree.
5955
__doc__ = """Remove unwanted files from working tree.
5913
5957
By default, only unknown files, not ignored files, are deleted. Versioned
5914
5958
files are never deleted.
5944
5988
class cmd_reference(Command):
5945
"""list, view and set branch locations for nested trees.
5989
__doc__ = """list, view and set branch locations for nested trees.
5947
5991
If no arguments are provided, lists the branch locations for nested trees.
5948
5992
If one argument is provided, display the branch location for that tree.