275
275
--dry-run will show which files would be added, but not actually
278
--file-ids-from will try to use the file ids from the supplied path.
279
It looks up ids trying to find a matching parent directory with the
280
same filename, and then by pure path.
278
282
takes_args = ['file*']
279
takes_options = ['no-recurse', 'dry-run', 'verbose']
283
takes_options = ['no-recurse', 'dry-run', 'verbose',
284
Option('file-ids-from', type=unicode,
285
help='Lookup file ids from here')]
280
286
encoding_type = 'replace'
282
def run(self, file_list, no_recurse=False, dry_run=False, verbose=False):
288
def run(self, file_list, no_recurse=False, dry_run=False, verbose=False,
283
290
import bzrlib.add
285
action = bzrlib.add.AddAction(to_file=self.outf,
286
should_print=(not is_quiet()))
288
added, ignored = bzrlib.add.smart_add(file_list, not no_recurse,
292
if file_ids_from is not None:
294
base_tree, base_path = WorkingTree.open_containing(
296
except errors.NoWorkingTree:
297
base_branch, base_path = branch.Branch.open_containing(
299
base_tree = base_branch.basis_tree()
301
action = bzrlib.add.AddFromBaseAction(base_tree, base_path,
302
to_file=self.outf, should_print=(not is_quiet()))
304
action = bzrlib.add.AddAction(to_file=self.outf,
305
should_print=(not is_quiet()))
307
added, ignored = bzrlib.add.smart_add(file_list, not no_recurse,
289
308
action=action, save=not dry_run)
290
309
if len(ignored) > 0:
762
781
old_format = bzrdir.BzrDirFormat.get_default_format()
763
782
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
766
checkout = bzrdir.BzrDirMetaFormat1().initialize(to_location)
767
branch.BranchReferenceFormat().initialize(checkout, source)
769
checkout_branch = bzrdir.BzrDir.create_branch_convenience(
770
to_location, force_new_tree=False)
771
checkout = checkout_branch.bzrdir
772
checkout_branch.bind(source)
773
if revision_id is not None:
774
rh = checkout_branch.revision_history()
775
checkout_branch.set_revision_history(rh[:rh.index(revision_id) + 1])
776
checkout.create_workingtree(revision_id)
784
source.create_checkout(to_location, revision_id, lightweight)
778
786
bzrdir.BzrDirFormat.set_default_format(old_format)
1955
1963
import bzrlib.ui
1956
1964
from bzrlib.tests import selftest
1957
1965
import bzrlib.benchmarks as benchmarks
1966
from bzrlib.benchmarks import tree_creator
1959
1968
if cache_dir is not None:
1960
benchmarks.Benchmark.CACHE_ROOT = osutils.abspath(cache_dir)
1969
tree_creator.TreeCreator.CACHE_ROOT = osutils.abspath(cache_dir)
1961
1970
# we don't want progress meters from the tests to go to the
1962
1971
# real output; and we don't want log messages cluttering up
1963
1972
# the real logs.
1976
1985
test_suite_factory = benchmarks.test_suite
1977
1986
if verbose is None:
1988
benchfile = open(".perf_history", "at")
1980
1990
test_suite_factory = None
1981
1991
if verbose is None:
1982
1992
verbose = False
1983
result = selftest(verbose=verbose,
1985
stop_on_failure=one,
1986
keep_output=keep_output,
1987
transport=transport,
1988
test_suite_factory=test_suite_factory,
1989
lsprof_timed=lsprof_timed)
1995
result = selftest(verbose=verbose,
1997
stop_on_failure=one,
1998
keep_output=keep_output,
1999
transport=transport,
2000
test_suite_factory=test_suite_factory,
2001
lsprof_timed=lsprof_timed,
2002
bench_history=benchfile)
2004
if benchfile is not None:
1991
2007
info('tests passed')
1996
2012
ui.ui_factory = save_ui
1999
def _get_bzr_branch():
2000
"""If bzr is run from a branch, return Branch or None"""
2001
from os.path import dirname
2004
branch = Branch.open(dirname(osutils.abspath(dirname(__file__))))
2006
except errors.BzrError:
2012
print "Bazaar (bzr) %s" % bzrlib.__version__
2013
# is bzrlib itself in a branch?
2014
branch = _get_bzr_branch()
2016
rh = branch.revision_history()
2018
print " bzr checkout, revision %d" % (revno,)
2019
print " nick: %s" % (branch.nick,)
2021
print " revid: %s" % (rh[-1],)
2022
print "Using python interpreter:", sys.executable
2024
print "Using python standard library:", os.path.dirname(site.__file__)
2025
print "Using bzrlib:",
2026
if len(bzrlib.__path__) > 1:
2027
# print repr, which is a good enough way of making it clear it's
2028
# more than one element (eg ['/foo/bar', '/foo/bzr'])
2029
print repr(bzrlib.__path__)
2031
print bzrlib.__path__[0]
2034
print bzrlib.__copyright__
2035
print "http://bazaar-vcs.org/"
2037
print "bzr comes with ABSOLUTELY NO WARRANTY. bzr is free software, and"
2038
print "you may use, modify and redistribute it under the terms of the GNU"
2039
print "General Public License version 2 or later."
2042
2015
class cmd_version(Command):
2043
2016
"""Show version of bzr."""
2045
2018
@display_command
2020
from bzrlib.version import show_version
2129
2103
takes_args = ['branch?']
2130
2104
takes_options = ['revision', 'force', 'merge-type', 'reprocess', 'remember',
2131
2105
Option('show-base', help="Show base revision text in "
2107
Option('uncommitted', help='Apply uncommitted changes'
2108
' from a working copy, instead of branch changes')]
2134
2110
def help(self):
2135
2111
from merge import merge_type_help
2137
2113
return getdoc(self) + '\n' + merge_type_help()
2139
2115
def run(self, branch=None, revision=None, force=False, merge_type=None,
2140
show_base=False, reprocess=False, remember=False):
2116
show_base=False, reprocess=False, remember=False,
2141
2118
if merge_type is None:
2142
2119
merge_type = Merge3Merger
2159
2136
branch = self._get_remembered_parent(tree, branch, 'Merging from')
2161
2138
if revision is None or len(revision) < 1:
2163
other = [branch, -1]
2141
other = [branch, None]
2144
other = [branch, -1]
2164
2145
other_branch, path = Branch.open_containing(branch)
2148
raise BzrCommandError('Cannot use --uncommitted and --revision'
2149
' at the same time.')
2166
2150
if len(revision) == 1:
2167
2151
base = [None, None]
2168
2152
other_branch, path = Branch.open_containing(branch)
2510
2494
class cmd_testament(Command):
2511
2495
"""Show testament (signing-form) of a revision."""
2512
takes_options = ['revision', 'long',
2496
takes_options = ['revision',
2497
Option('long', help='Produce long-format testament'),
2513
2498
Option('strict', help='Produce a strict-format'
2515
2500
takes_args = ['branch?']