13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
"""Report on version of breezy"""
17
"""Report on version of bzrlib"""
33
def show_version(show_config=True, show_copyright=True, to_file=None):
36
to_file.write("Breezy (brz) %s\n" % breezy.__version__)
37
# is breezy itself in a branch?
38
src_tree = _get_brz_source_tree()
29
from bzrlib.branch import Branch
33
print "Bazaar (bzr) %s" % bzrlib.__version__
34
# is bzrlib itself in a branch?
35
src_tree = _get_bzr_source_tree()
40
37
src_revision_id = src_tree.last_revision()
41
to_file.write(" from brz checkout %s\n" % (src_tree.basedir,))
43
revno = src_tree.branch.revision_id_to_revno(src_revision_id)
44
except errors.GhostRevisionsHaveNoRevno:
47
to_file.write(" revision: %s\n" % (revno,))
48
to_file.write(" revid: %s\n" % (src_revision_id,))
49
to_file.write(" branch nick: %s\n" % (src_tree.branch.nick,))
51
to_file.write(" Python interpreter: ")
52
# show path to python interpreter
53
# (brz.exe use python interpreter from pythonXY.dll
54
# but sys.executable point to brz.exe itself)
55
# however, sys.frozen exists if running from brz.exe
56
# see http://www.py2exe.org/index.cgi/Py2exeEnvironment
57
if getattr(sys, 'frozen', None) is None: # if not brz.exe
58
to_file.write(sys.executable + ' ')
61
basedir = os.path.dirname(sys.executable)
62
python_dll = "python%d%d.dll" % sys.version_info[:2]
63
to_file.write(os.path.join(basedir, python_dll) + ' ')
64
# and now version of python interpreter
65
to_file.write(breezy._format_version_tuple(sys.version_info))
68
to_file.write(" Python standard library:" + ' ')
69
to_file.write(os.path.dirname(os.__file__) + '\n')
70
platform_str = platform.platform(aliased=1)
71
if not isinstance(platform_str, str):
72
platform_str = platform_str.decode('utf-8')
73
to_file.write(" Platform: %s\n" % platform_str)
74
to_file.write(" breezy: ")
75
if len(breezy.__path__) > 1:
38
revno = src_tree.branch.revision_id_to_revno(src_revision_id)
39
print " from bzr checkout", src_tree.basedir
40
print " revision:", revno
41
print " revid:", src_revision_id
42
print " branch nick:", src_tree.branch.nick
43
print "Using python interpreter:", sys.executable
45
print "Using python standard library:", os.path.dirname(site.__file__)
46
print "Using bzrlib:",
47
if len(bzrlib.__path__) > 1:
76
48
# print repr, which is a good enough way of making it clear it's
77
# more than one element (eg ['/foo/bar', '/foo/brz'])
78
to_file.write(repr(breezy.__path__) + '\n')
49
# more than one element (eg ['/foo/bar', '/foo/bzr'])
50
print repr(bzrlib.__path__)
80
to_file.write(breezy.__path__[0] + '\n')
82
config_dir = osutils.normpath(
83
bedding.config_dir()) # use native slashes
84
if not isinstance(config_dir, str):
85
config_dir = config_dir.decode(osutils.get_user_encoding())
86
to_file.write(" Breezy configuration: %s\n" % (config_dir,))
87
to_file.write(" Breezy log file: ")
88
to_file.write(trace._brz_log_filename + '\n')
91
to_file.write(breezy.__copyright__ + '\n')
92
to_file.write("https://www.breezy-vcs.org/\n")
95
"brz comes with ABSOLUTELY NO WARRANTY. brz is free software, and\n")
97
"you may use, modify and redistribute it under the terms of the GNU\n")
98
to_file.write("General Public License version 2 or later.\n")
102
def _get_brz_source_tree():
103
"""Return the WorkingTree for brz source, if any.
105
If brz is not being run from its working tree, returns None.
52
print bzrlib.__path__[0]
53
print "Using bazaar configuration:", config.config_dir()
55
print bzrlib.__copyright__
56
print "http://bazaar-vcs.org/"
58
print "bzr comes with ABSOLUTELY NO WARRANTY. bzr is free software, and"
59
print "you may use, modify and redistribute it under the terms of the GNU"
60
print "General Public License version 2 or later."
63
def _get_bzr_source_tree():
64
"""Return the WorkingTree for bzr source, if any.
66
If bzr is not being run from its working tree, returns None.
108
control = controldir.ControlDir.open_containing(__file__)[0]
69
control = bzrdir.BzrDir.open_containing(__file__)[0]
109
70
return control.open_workingtree(recommend_upgrade=False)
110
71
except (errors.NotBranchError, errors.UnknownFormatError,
111
72
errors.NoWorkingTree):