253
250
To skip the display of pending merge information altogether, use
254
251
the no-pending option or specify a file/directory.
256
To compare the working directory to a specific revision, pass a
257
single revision to the revision argument.
259
To see which files have changed in a specific revision, or between
260
two revisions, pass a revision range to the revision argument.
261
This will produce the same results as calling 'bzr diff --summarize'.
253
If a revision argument is given, the status is calculated against
254
that revision, or between two revisions if two are provided.
264
257
# TODO: --no-recurse, --recurse options
488
477
d.destroy_workingtree()
491
class cmd_repair_workingtree(Command):
492
__doc__ = """Reset the working tree state file.
494
This is not meant to be used normally, but more as a way to recover from
495
filesystem corruption, etc. This rebuilds the working inventory back to a
496
'known good' state. Any new modifications (adding a file, renaming, etc)
497
will be lost, though modified files will still be detected as such.
499
Most users will want something more like "bzr revert" or "bzr update"
500
unless the state file has become corrupted.
502
By default this attempts to recover the current state by looking at the
503
headers of the state file. If the state file is too corrupted to even do
504
that, you can supply --revision to force the state of the tree.
507
takes_options = ['revision', 'directory',
509
help='Reset the tree even if it doesn\'t appear to be'
514
def run(self, revision=None, directory='.', force=False):
515
tree, _ = WorkingTree.open_containing(directory)
516
self.add_cleanup(tree.lock_tree_write().unlock)
520
except errors.BzrError:
521
pass # There seems to be a real error here, so we'll reset
524
raise errors.BzrCommandError(
525
'The tree does not appear to be corrupt. You probably'
526
' want "bzr revert" instead. Use "--force" if you are'
527
' sure you want to reset the working tree.')
531
revision_ids = [r.as_revision_id(tree.branch) for r in revision]
533
tree.reset_state(revision_ids)
534
except errors.BzrError, e:
535
if revision_ids is None:
536
extra = (', the header appears corrupt, try passing -r -1'
537
' to set the state to the last commit')
540
raise errors.BzrCommandError('failed to reset the tree state'
544
480
class cmd_revno(Command):
545
481
__doc__ = """Show current revision number.
966
901
match the remote one, use pull --overwrite. This will work even if the two
967
902
branches have diverged.
969
If there is no default location set, the first pull will set it (use
970
--no-remember to avoid settting it). After that, you can omit the
971
location to use the default. To change the default, use --remember. The
972
value will only be saved if the remote location can be accessed.
904
If there is no default location set, the first pull will set it. After
905
that, you can omit the location to use the default. To change the
906
default, use --remember. The value will only be saved if the remote
907
location can be accessed.
974
909
Note: The location can be specified either in the form of a branch,
975
910
or in the form of a path to a file containing a merge directive generated
994
929
takes_args = ['location?']
995
930
encoding_type = 'replace'
997
def run(self, location=None, remember=None, overwrite=False,
932
def run(self, location=None, remember=False, overwrite=False,
998
933
revision=None, verbose=False,
999
934
directory=None, local=False,
1000
935
show_base=False):
1103
1033
do a merge (see bzr help merge) from the other branch, and commit that.
1104
1034
After that you will be able to do a push without '--overwrite'.
1106
If there is no default push location set, the first push will set it (use
1107
--no-remember to avoid settting it). After that, you can omit the
1108
location to use the default. To change the default, use --remember. The
1109
value will only be saved if the remote location can be accessed.
1036
If there is no default push location set, the first push will set it.
1037
After that, you can omit the location to use the default. To change the
1038
default, use --remember. The value will only be saved if the remote
1039
location can be accessed.
1112
1042
_see_also = ['pull', 'update', 'working-trees']
1133
1063
Option('strict',
1134
1064
help='Refuse to push if there are uncommitted changes in'
1135
1065
' the working tree, --no-strict disables the check.'),
1137
help="Don't populate the working tree, even for protocols"
1138
" that support it."),
1140
1067
takes_args = ['location?']
1141
1068
encoding_type = 'replace'
1143
def run(self, location=None, remember=None, overwrite=False,
1070
def run(self, location=None, remember=False, overwrite=False,
1144
1071
create_prefix=False, verbose=False, revision=None,
1145
1072
use_existing_dir=False, directory=None, stacked_on=None,
1146
stacked=False, strict=None, no_tree=False):
1073
stacked=False, strict=None):
1147
1074
from bzrlib.push import _show_push_branch
1149
1076
if directory is None:
1195
1122
_show_push_branch(br_from, revision_id, location, self.outf,
1196
1123
verbose=verbose, overwrite=overwrite, remember=remember,
1197
1124
stacked_on=stacked_on, create_prefix=create_prefix,
1198
use_existing_dir=use_existing_dir, no_tree=no_tree)
1125
use_existing_dir=use_existing_dir)
1201
1128
class cmd_branch(Command):
1247
1172
files_from=None):
1248
1173
from bzrlib import switch as _mod_switch
1249
1174
from bzrlib.tag import _merge_tags_if_possible
1250
if self.invoked_as in ['get', 'clone']:
1251
ui.ui_factory.show_user_warning(
1252
'deprecated_command',
1253
deprecated_name=self.invoked_as,
1254
recommended_name='branch',
1255
deprecated_in_version='2.4')
1256
1175
accelerator_tree, br_from = bzrdir.BzrDir.open_tree_or_branch(
1258
1177
if not (hardlink or files_from):
1586
1505
title='Deletion Strategy', value_switches=True, enum_switch=False,
1587
1506
safe='Backup changed files (default).',
1588
1507
keep='Delete from bzr but leave the working copy.',
1589
no_backup='Don\'t backup changed files.',
1590
1508
force='Delete all the specified files, even if they can not be '
1591
'recovered and even if they are non-empty directories. '
1592
'(deprecated, use no-backup)')]
1509
'recovered and even if they are non-empty directories.')]
1593
1510
aliases = ['rm', 'del']
1594
1511
encoding_type = 'replace'
1596
1513
def run(self, file_list, verbose=False, new=False,
1597
1514
file_deletion_strategy='safe'):
1598
if file_deletion_strategy == 'force':
1599
note("(The --force option is deprecated, rather use --no-backup "
1601
file_deletion_strategy = 'no-backup'
1603
1515
tree, file_list = WorkingTree.open_containing_paths(file_list)
1605
1517
if file_list is not None:
1743
1655
last_revision = wt.last_revision()
1745
self.add_cleanup(b.repository.lock_read().unlock)
1746
graph = b.repository.get_graph()
1747
revisions = [revid for revid, parents in
1748
graph.iter_ancestry([last_revision])]
1749
for revision_id in reversed(revisions):
1750
if _mod_revision.is_null(revision_id):
1657
revision_ids = b.repository.get_ancestry(last_revision)
1659
for revision_id in revision_ids:
1752
1660
self.outf.write(revision_id + '\n')
1792
1700
Option('append-revisions-only',
1793
1701
help='Never change revnos or the existing log.'
1794
' Append revisions to it only.'),
1796
'Create a branch without a working tree.')
1702
' Append revisions to it only.')
1798
1704
def run(self, location=None, format=None, append_revisions_only=False,
1799
create_prefix=False, no_tree=False):
1705
create_prefix=False):
1800
1706
if format is None:
1801
1707
format = bzrdir.format_registry.make_bzrdir('default')
1802
1708
if location is None:
3134
2998
to trigger updates to external systems like bug trackers. The --fixes
3135
2999
option can be used to record the association between a revision and
3136
3000
one or more bugs. See ``bzr help bugs`` for details.
3002
A selective commit may fail in some cases where the committed
3003
tree would be invalid. Consider::
3008
bzr commit foo -m "committing foo"
3009
bzr mv foo/bar foo/baz
3012
bzr commit foo/bar -m "committing bar but not baz"
3014
In the example above, the last commit will fail by design. This gives
3015
the user the opportunity to decide whether they want to commit the
3016
rename at the same time, separately first, or not at all. (As a general
3017
rule, when in doubt, Bazaar has a policy of Doing the Safe Thing.)
3019
# TODO: Run hooks on tree to-be-committed, and after commit.
3021
# TODO: Strict commit that fails if there are deleted files.
3022
# (what does "deleted files" mean ??)
3024
# TODO: Give better message for -s, --summary, used by tla people
3026
# XXX: verbose currently does nothing
3139
3028
_see_also = ['add', 'bugs', 'hooks', 'uncommit']
3140
3029
takes_args = ['selected*']
3201
3086
def run(self, message=None, file=None, verbose=False, selected_list=None,
3202
3087
unchanged=False, strict=False, local=False, fixes=None,
3203
author=None, show_diff=False, exclude=None, commit_time=None,
3088
author=None, show_diff=False, exclude=None, commit_time=None):
3205
3089
from bzrlib.errors import (
3206
3090
PointlessCommit,
3207
3091
ConflictsInTree,
3283
3172
# make_commit_message_template_encoded returns user encoding.
3284
3173
# We probably want to be using edit_commit_message instead to
3286
my_message = set_commit_message(commit_obj)
3287
if my_message is None:
3288
start_message = generate_commit_message_template(commit_obj)
3289
my_message = edit_commit_message_encoded(text,
3290
start_message=start_message)
3175
start_message = generate_commit_message_template(commit_obj)
3176
my_message = edit_commit_message_encoded(text,
3177
start_message=start_message)
3291
3178
if my_message is None:
3292
3179
raise errors.BzrCommandError("please specify a commit"
3293
3180
" message with either --message or --file")
3306
3193
reporter=None, verbose=verbose, revprops=properties,
3307
3194
authors=author, timestamp=commit_stamp,
3308
3195
timezone=offset,
3309
exclude=tree.safe_relpath_files(exclude),
3196
exclude=tree.safe_relpath_files(exclude))
3311
3197
except PointlessCommit:
3312
3198
raise errors.BzrCommandError("No changes to commit."
3313
" Please 'bzr add' the files you want to commit, or use"
3314
" --unchanged to force an empty commit.")
3199
" Use --unchanged to commit anyhow.")
3315
3200
except ConflictsInTree:
3316
3201
raise errors.BzrCommandError('Conflicts detected in working '
3317
3202
'tree. Use "bzr conflicts" to list, "bzr resolve FILE" to'
3400
3285
class cmd_upgrade(Command):
3401
__doc__ = """Upgrade a repository, branch or working tree to a newer format.
3403
When the default format has changed after a major new release of
3404
Bazaar, you may be informed during certain operations that you
3405
should upgrade. Upgrading to a newer format may improve performance
3406
or make new features available. It may however limit interoperability
3407
with older repositories or with older versions of Bazaar.
3409
If you wish to upgrade to a particular format rather than the
3410
current default, that can be specified using the --format option.
3411
As a consequence, you can use the upgrade command this way to
3412
"downgrade" to an earlier format, though some conversions are
3413
a one way process (e.g. changing from the 1.x default to the
3414
2.x default) so downgrading is not always possible.
3416
A backup.bzr.~#~ directory is created at the start of the conversion
3417
process (where # is a number). By default, this is left there on
3418
completion. If the conversion fails, delete the new .bzr directory
3419
and rename this one back in its place. Use the --clean option to ask
3420
for the backup.bzr directory to be removed on successful conversion.
3421
Alternatively, you can delete it by hand if everything looks good
3424
If the location given is a shared repository, dependent branches
3425
are also converted provided the repository converts successfully.
3426
If the conversion of a branch fails, remaining branches are still
3429
For more information on upgrades, see the Bazaar Upgrade Guide,
3430
http://doc.bazaar.canonical.com/latest/en/upgrade-guide/.
3286
__doc__ = """Upgrade branch storage to current format.
3288
The check command or bzr developers may sometimes advise you to run
3289
this command. When the default format has changed you may also be warned
3290
during other operations to upgrade.
3433
_see_also = ['check', 'reconcile', 'formats']
3293
_see_also = ['check']
3434
3294
takes_args = ['url?']
3435
3295
takes_options = [
3436
RegistryOption('format',
3437
help='Upgrade to a specific format. See "bzr help'
3438
' formats" for details.',
3439
lazy_registry=('bzrlib.bzrdir', 'format_registry'),
3440
converter=lambda name: bzrdir.format_registry.make_bzrdir(name),
3441
value_switches=True, title='Branch format'),
3443
help='Remove the backup.bzr directory if successful.'),
3445
help="Show what would be done, but don't actually do anything."),
3296
RegistryOption('format',
3297
help='Upgrade to a specific format. See "bzr help'
3298
' formats" for details.',
3299
lazy_registry=('bzrlib.bzrdir', 'format_registry'),
3300
converter=lambda name: bzrdir.format_registry.make_bzrdir(name),
3301
value_switches=True, title='Branch format'),
3448
def run(self, url='.', format=None, clean=False, dry_run=False):
3304
def run(self, url='.', format=None):
3449
3305
from bzrlib.upgrade import upgrade
3450
exceptions = upgrade(url, format, clean_up=clean, dry_run=dry_run)
3452
if len(exceptions) == 1:
3453
# Compatibility with historical behavior
3306
upgrade(url, format)
3459
3309
class cmd_whoami(Command):
3668
3514
if typestring == "sftp":
3669
3515
from bzrlib.tests import stub_sftp
3670
3516
return stub_sftp.SFTPAbsoluteServer
3671
elif typestring == "memory":
3517
if typestring == "memory":
3672
3518
from bzrlib.tests import test_server
3673
3519
return memory.MemoryServer
3674
elif typestring == "fakenfs":
3520
if typestring == "fakenfs":
3675
3521
from bzrlib.tests import test_server
3676
3522
return test_server.FakeNFSServer
3677
3523
msg = "No known transport type %s. Supported types are: sftp\n" %\
3711
3557
Option('randomize', type=str, argname="SEED",
3712
3558
help='Randomize the order of tests using the given'
3713
3559
' seed or "now" for the current time.'),
3714
ListOption('exclude', type=str, argname="PATTERN",
3716
help='Exclude tests that match this regular'
3560
Option('exclude', type=str, argname="PATTERN",
3562
help='Exclude tests that match this regular'
3718
3564
Option('subunit',
3719
3565
help='Output test progress via subunit.'),
3720
3566
Option('strict', help='Fail on missing dependencies or '
3860
3702
The source of the merge can be specified either in the form of a branch,
3861
3703
or in the form of a path to a file containing a merge directive generated
3862
3704
with bzr send. If neither is specified, the default is the upstream branch
3863
or the branch most recently merged using --remember. The source of the
3864
merge may also be specified in the form of a path to a file in another
3865
branch: in this case, only the modifications to that file are merged into
3866
the current working tree.
3868
When merging from a branch, by default bzr will try to merge in all new
3869
work from the other branch, automatically determining an appropriate base
3870
revision. If this fails, you may need to give an explicit base.
3872
To pick a different ending revision, pass "--revision OTHER". bzr will
3873
try to merge in all new work up to and including revision OTHER.
3875
If you specify two values, "--revision BASE..OTHER", only revisions BASE
3876
through OTHER, excluding BASE but including OTHER, will be merged. If this
3877
causes some revisions to be skipped, i.e. if the destination branch does
3878
not already contain revision BASE, such a merge is commonly referred to as
3879
a "cherrypick". Unlike a normal merge, Bazaar does not currently track
3880
cherrypicks. The changes look like a normal commit, and the history of the
3881
changes from the other branch is not stored in the commit.
3883
Revision numbers are always relative to the source branch.
3705
or the branch most recently merged using --remember.
3707
When merging a branch, by default the tip will be merged. To pick a different
3708
revision, pass --revision. If you specify two values, the first will be used as
3709
BASE and the second one as OTHER. Merging individual revisions, or a subset of
3710
available revisions, like this is commonly referred to as "cherrypicking".
3712
Revision numbers are always relative to the branch being merged.
3714
By default, bzr will try to merge in all new work from the other
3715
branch, automatically determining an appropriate base. If this
3716
fails, you may need to give an explicit base.
3885
3718
Merge will do its best to combine the changes in two branches, but there
3886
3719
are some kinds of problems only a human can fix. When it encounters those,
3890
3723
Use bzr resolve when you have fixed a problem. See also bzr conflicts.
3892
If there is no default branch set, the first merge will set it (use
3893
--no-remember to avoid settting it). After that, you can omit the branch
3894
to use the default. To change the default, use --remember. The value will
3895
only be saved if the remote location can be accessed.
3725
If there is no default branch set, the first merge will set it. After
3726
that, you can omit the branch to use the default. To change the
3727
default, use --remember. The value will only be saved if the remote
3728
location can be accessed.
3897
3730
The results of the merge are placed into the destination working
3898
3731
directory, where they can be reviewed (with bzr diff), tested, and then
3899
3732
committed to record the result of the merge.
3901
3734
merge refuses to run if there are any uncommitted changes, unless
3902
--force is given. If --force is given, then the changes from the source
3903
will be merged with the current working tree, including any uncommitted
3904
changes in the tree. The --force option can also be used to create a
3735
--force is given. The --force option can also be used to create a
3905
3736
merge revision which has more than two parents.
3907
3738
If one would like to merge changes from the working tree of the other
3967
3798
def run(self, location=None, revision=None, force=False,
3968
merge_type=None, show_base=False, reprocess=None, remember=None,
3799
merge_type=None, show_base=False, reprocess=None, remember=False,
3969
3800
uncommitted=False, pull=False,
3970
3801
directory=None,
4035
3862
self.sanity_check_merger(merger)
4036
3863
if (merger.base_rev_id == merger.other_rev_id and
4037
3864
merger.other_rev_id is not None):
4038
# check if location is a nonexistent file (and not a branch) to
4039
# disambiguate the 'Nothing to do'
4040
if merger.interesting_files:
4041
if not merger.other_tree.has_filename(
4042
merger.interesting_files[0]):
4043
note("merger: " + str(merger))
4044
raise errors.PathsDoNotExist([location])
4045
3865
note('Nothing to do.')
4047
if pull and not preview:
4048
3868
if merger.interesting_files is not None:
4049
3869
raise errors.BzrCommandError('Cannot pull individual files')
4050
3870
if (merger.base_rev_id == tree.last_revision()):
4159
3979
if other_revision_id is None:
4160
3980
other_revision_id = _mod_revision.ensure_null(
4161
3981
other_branch.last_revision())
4162
# Remember where we merge from. We need to remember if:
4163
# - user specify a location (and we don't merge from the parent
4165
# - user ask to remember or there is no previous location set to merge
4166
# from and user didn't ask to *not* remember
4167
if (user_location is not None
4169
or (remember is None
4170
and tree.branch.get_submit_branch() is None)))):
3982
# Remember where we merge from
3983
if ((remember or tree.branch.get_submit_branch() is None) and
3984
user_location is not None):
4171
3985
tree.branch.set_submit_branch(other_branch.base)
4172
# Merge tags (but don't set them in the master branch yet, the user
4173
# might revert this merge). Commit will propagate them.
4174
_merge_tags_if_possible(other_branch, tree.branch, ignore_master=True)
3986
_merge_tags_if_possible(other_branch, tree.branch)
4175
3987
merger = _mod_merge.Merger.from_revision_ids(pb, tree,
4176
3988
other_revision_id, base_revision_id, other_branch, base_branch)
4177
3989
if other_path != '':
4345
4157
last committed revision is used.
4347
4159
To remove only some changes, without reverting to a prior version, use
4348
merge instead. For example, "merge . -r -2..-3" (don't forget the ".")
4349
will remove the changes introduced by the second last commit (-2), without
4350
affecting the changes introduced by the last commit (-1). To remove
4351
certain changes on a hunk-by-hunk basis, see the shelve command.
4160
merge instead. For example, "merge . --revision -2..-3" will remove the
4161
changes introduced by -2, without affecting the changes introduced by -1.
4162
Or to remove certain changes on a hunk-by-hunk basis, see the Shelf plugin.
4353
4164
By default, any files that have been manually changed will be backed up
4354
4165
first. (Files changed only by merge are not backed up.) Backup files have
4684
4495
@display_command
4685
4496
def run(self, verbose=False):
4686
from bzrlib import plugin
4687
# Don't give writelines a generator as some codecs don't like that
4688
self.outf.writelines(
4689
list(plugin.describe_plugins(show_paths=verbose)))
4497
import bzrlib.plugin
4498
from inspect import getdoc
4500
for name, plugin in bzrlib.plugin.plugins().items():
4501
version = plugin.__version__
4502
if version == 'unknown':
4504
name_ver = '%s %s' % (name, version)
4505
d = getdoc(plugin.module)
4507
doc = d.split('\n')[0]
4509
doc = '(no description)'
4510
result.append((name_ver, doc, plugin.path()))
4511
for name_ver, doc, path in sorted(result):
4512
self.outf.write("%s\n" % name_ver)
4513
self.outf.write(" %s\n" % doc)
4515
self.outf.write(" %s\n" % path)
4516
self.outf.write("\n")
4692
4519
class cmd_testament(Command):
4756
4581
self.add_cleanup(branch.lock_read().unlock)
4757
4582
tree = _get_one_revision_tree('annotate', revision, branch=branch)
4758
4583
self.add_cleanup(tree.lock_read().unlock)
4759
if wt is not None and revision is None:
4760
4585
file_id = wt.path2id(relpath)
4762
4587
file_id = tree.path2id(relpath)
4763
4588
if file_id is None:
4764
4589
raise errors.NotVersionedError(filename)
4590
file_version = tree.inventory[file_id].revision
4765
4591
if wt is not None and revision is None:
4766
4592
# If there is a tree and we're not annotating historical
4767
4593
# versions, annotate the working tree's content.
4768
4594
annotate_file_tree(wt, file_id, self.outf, long, all,
4769
4595
show_ids=show_ids)
4771
annotate_file_tree(tree, file_id, self.outf, long, all,
4772
show_ids=show_ids, branch=branch)
4597
annotate_file(branch, file_version, file_id, long, all, self.outf,
4775
4601
class cmd_re_sign(Command):
5332
5158
source branch defaults to that containing the working directory, but can
5333
5159
be changed using --from.
5335
Both the submit branch and the public branch follow the usual behavior with
5336
respect to --remember: If there is no default location set, the first send
5337
will set it (use --no-remember to avoid settting it). After that, you can
5338
omit the location to use the default. To change the default, use
5339
--remember. The value will only be saved if the location can be accessed.
5341
5161
In order to calculate those changes, bzr must analyse the submit branch.
5342
5162
Therefore it is most efficient for the submit branch to be a local mirror.
5343
5163
If a public location is known for the submit_branch, that location is used
5414
5234
def run(self, submit_branch=None, public_branch=None, no_bundle=False,
5415
no_patch=False, revision=None, remember=None, output=None,
5235
no_patch=False, revision=None, remember=False, output=None,
5416
5236
format=None, mail_to=None, message=None, body=None,
5417
5237
strict=None, **kwargs):
5418
5238
from bzrlib.send import send
5575
5395
takes_options = [
5576
5396
custom_help('directory',
5577
5397
help='Branch whose tags should be displayed.'),
5578
RegistryOption('sort',
5398
RegistryOption.from_kwargs('sort',
5579
5399
'Sort tags by different criteria.', title='Sorting',
5580
lazy_registry=('bzrlib.tag', 'tag_sort_methods')
5400
alpha='Sort tags lexicographically (default).',
5401
time='Sort tags chronologically.',
5586
5407
@display_command
5587
def run(self, directory='.', sort=None, show_ids=False, revision=None):
5588
from bzrlib.tag import tag_sort_methods
5589
5414
branch, relpath = Branch.open_containing(directory)
5591
5416
tags = branch.tags.get_tag_dict().items()
5600
5425
# only show revisions between revid1 and revid2 (inclusive)
5601
5426
tags = [(tag, revid) for tag, revid in tags if
5602
5427
graph.is_between(revid, revid1, revid2)]
5604
sort = tag_sort_methods.get()
5430
elif sort == 'time':
5432
for tag, revid in tags:
5434
revobj = branch.repository.get_revision(revid)
5435
except errors.NoSuchRevision:
5436
timestamp = sys.maxint # place them at the end
5438
timestamp = revobj.timestamp
5439
timestamps[revid] = timestamp
5440
tags.sort(key=lambda x: timestamps[x[1]])
5606
5441
if not show_ids:
5607
5442
# [ (tag, revid), ... ] -> [ (tag, dotted_revno), ... ]
5608
5443
for index, (tag, revid) in enumerate(tags):
6032
5867
You can put multiple items on the shelf, and by default, 'unshelve' will
6033
5868
restore the most recently shelved changes.
6035
For complicated changes, it is possible to edit the changes in a separate
6036
editor program to decide what the file remaining in the working copy
6037
should look like. To do this, add the configuration option
6039
change_editor = PROGRAM @new_path @old_path
6041
where @new_path is replaced with the path of the new version of the
6042
file and @old_path is replaced with the path of the old version of
6043
the file. The PROGRAM should save the new file with the desired
6044
contents of the file in the working tree.
6048
5871
takes_args = ['file*']
6060
5883
Option('destroy',
6061
5884
help='Destroy removed changes instead of shelving them.'),
6063
_see_also = ['unshelve', 'configuration']
5886
_see_also = ['unshelve']
6065
5888
def run(self, revision=None, all=False, file_list=None, message=None,
6066
writer=None, list=False, destroy=False, directory=None):
5889
writer=None, list=False, destroy=False, directory=u'.'):
6068
return self.run_for_list(directory=directory)
5891
return self.run_for_list()
6069
5892
from bzrlib.shelf_ui import Shelver
6070
5893
if writer is None:
6071
5894
writer = bzrlib.option.diff_writer_registry.get()
6148
5969
takes_options = ['directory',
6149
5970
Option('ignored', help='Delete all ignored files.'),
6150
Option('detritus', help='Delete conflict files, merge and revert'
5971
Option('detritus', help='Delete conflict files, merge'
6151
5972
' backups, and failed selftest dirs.'),
6152
5973
Option('unknown',
6153
5974
help='Delete files unknown to bzr (default).'),
6212
6033
self.outf.write('%s %s\n' % (path, location))
6215
class cmd_export_pot(Command):
6216
__doc__ = """Export command helps and error messages in po format."""
6221
from bzrlib.export_pot import export_pot
6222
export_pot(self.outf)
6225
6036
def _register_lazy_builtins():
6226
6037
# register lazy builtins from other modules; called at startup and should
6227
6038
# be only called once.
6228
6039
for (name, aliases, module_name) in [
6229
6040
('cmd_bundle_info', [], 'bzrlib.bundle.commands'),
6230
('cmd_config', [], 'bzrlib.config'),
6231
6041
('cmd_dpush', [], 'bzrlib.foreign'),
6232
6042
('cmd_version_info', [], 'bzrlib.cmd_version_info'),
6233
6043
('cmd_resolve', ['resolved'], 'bzrlib.conflicts'),
6234
6044
('cmd_conflicts', [], 'bzrlib.conflicts'),
6235
('cmd_sign_my_commits', [], 'bzrlib.commit_signature_commands'),
6236
('cmd_verify_signatures', [],
6237
'bzrlib.commit_signature_commands'),
6238
('cmd_test_script', [], 'bzrlib.cmd_test_script'),
6045
('cmd_sign_my_commits', [], 'bzrlib.sign_my_commits'),
6240
6047
builtin_command_registry.register_lazy(name, aliases, module_name)