~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/version_info.txt

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-03-13 17:57:55 UTC
  • mfrom: (1551.10.40 Aaron's mergeable stuff)
  • Revision ID: pqm@pqm.ubuntu.com-20070313175755-809681c81472204a
Merge autodetects line ending for conflict markers

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Exporting version information
2
 
=============================
3
 
 
4
 
Getting the last revision number
5
 
--------------------------------
6
 
 
7
 
If you only need the last revision number in your build scripts, you can
8
 
use the ``revno`` command to get that value like this::
9
 
 
10
 
  $ bzr revno
11
 
  3104
12
 
 
13
 
 
14
 
Getting more version information
15
 
--------------------------------
16
 
 
17
 
The ``version-info`` command can be used to output more information
18
 
about the latest version like this::
19
 
 
20
 
  $ bzr version-info
21
 
  revision-id: pqm@pqm.ubuntu.com-20071211175118-s94sizduj201hrs5
22
 
  date: 2007-12-11 17:51:18 +0000
23
 
  build-date: 2007-12-13 13:14:51 +1000
24
 
  revno: 3104
25
 
  branch-nick: bzr.dev
26
 
 
27
 
You can easily filter that output using operating system tools or
28
 
scripts. For example::
29
 
 
30
 
  $ bzr version-info | grep ^date
31
 
  date: 2007-12-11 17:51:18 +0000
32
 
 
33
 
The ``--all`` option will actually dump version information about
34
 
every revision if you need that information for more advanced
35
 
post-processing.
36
 
 
37
 
 
38
 
Python projects
39
 
---------------
40
 
 
41
 
.. TODO: Figure out how to attach into ``setup.py``
 
1
==========================
 
2
Using ``bzr version-info``
 
3
==========================
 
4
 
 
5
Overview
 
6
========
 
7
 
 
8
This document describes ways of using ``bzr version-info`` as part of a
 
9
build process to embed version information into a final project.
 
10
 
 
11
 
 
12
Python Project
 
13
==============
 
14
 
 
15
TODO: Figure out how to attach into ``setup.py``
42
16
 
43
17
 
44
18
If using a Makefile to build your project, you can generate the version
45
19
information file as simply as::
46
20
 
47
21
  library/_version.py:
48
 
        bzr version-info --format python > library/_version.py
 
22
        bzr version-info --format=python > library/_version.py
49
23
 
50
24
This generates a file which contains 3 dictionaries:
51
25
 
66
40
    map. This is also empty by default, and enabled only by ``--all``
67
41
    or ``--include-file-revisions``.
68
42
 
69
 
 
70
 
Getting version info in other formats
71
 
-------------------------------------
72
 
 
73
 
Bazaar supports a template-based method for getting version information in
74
 
arbitrary formats.  The ``--custom`` option to ``version-info`` can be
75
 
used by providing a ``--template`` argument that contains variables that
76
 
will be expanded based on the status of the working tree.  For example, to
77
 
generate a C header file with a formatted string containing the current
78
 
revision number::
79
 
 
80
 
 bzr version-info --custom \
81
 
      --template="#define VERSION_INFO \"Project 1.2.3 (r{revno})\"\n" \
82
 
      > version_info.h
83
 
 
84
 
where the ``{revno}`` will be replaced by the revision number of the
85
 
working tree.  (If the example above doesn't work on your OS, try
86
 
entering the command all on one line.) For more information on the
87
 
variables that can be used in templates, see `Version Info`_ in the
88
 
Bazaar User Reference.
89
 
 
90
 
.. _Version Info: ../user-reference/index.html#version-info
91
 
 
92
 
Predefined formats for dumping version information in specific languages
93
 
are currently in development. Please contact us on the mailing list about
94
 
your requirements in this area.
95
 
 
96
 
Check clean
97
 
-----------
 
43
Check Clean
 
44
===========
98
45
 
99
46
Most information about the contents of the project can be cheaply
100
47
determined by just reading the revision entry. However, it can be useful
104
51
set the ``clean`` flag in ``version_info``, as well as set entries in
105
52
``file_revisions`` as ``modified`` where appropriate.
106
53
 
107
 
..
 
54
.. 
108
55
   vim: tw=74 ft=rst spell spelllang=en_us