~bzr-pqm/bzr/bzr.dev

2977.1.2 by Ian Clatworthy
add conflict handling as an Appendix + minor tweaks
1
Exporting version information
2
=============================
2022.1.7 by John Arbash Meinel
Add NEWS and a simple doc for using bzr version-info
3
3104.2.6 by Ian Clatworthy
Improve Exporting version information
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
3234.4.1 by Neil Martinsen-Burrell
added version-info --custom section
18
about the latest version like this::
3104.2.6 by Ian Clatworthy
Improve Exporting version information
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 (on Linux/Unix)::
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``
2022.1.7 by John Arbash Meinel
Add NEWS and a simple doc for using bzr version-info
42
43
44
If using a Makefile to build your project, you can generate the version
45
information file as simply as::
46
47
  library/_version.py:
3104.2.6 by Ian Clatworthy
Improve Exporting version information
48
        bzr version-info --format python > library/_version.py
2022.1.7 by John Arbash Meinel
Add NEWS and a simple doc for using bzr version-info
49
50
This generates a file which contains 3 dictionaries:
51
2293.1.3 by Brad Crittenden
Updated version_info.txt for grammar changes
52
  * `version_info`: A dictionary containing the basic information about the
53
    current state.
54
55
  * `revisions`: A dictionary listing all of the revisions in the
56
    history of the tree, along with the commit times and commit
57
    message.  This defaults to being empty unless ``--all`` or
58
    ``--include-history`` is supplied. This is useful if you want to
59
    track what bug fixes, etc, might be included in the released
60
    version. But for many projects it is more information than needed.
61
62
  * `file_revisions`: A dictionary listing the last-modified revision
63
    for all files in the project. This can be used similarly to how
64
    ``$Id$`` keywords are used in CVS-controlled files. The last
65
    modified date can be determined by looking in the ``revisions``
66
    map. This is also empty by default, and enabled only by ``--all``
67
    or ``--include-file-revisions``.
2022.1.7 by John Arbash Meinel
Add NEWS and a simple doc for using bzr version-info
68
3104.2.6 by Ian Clatworthy
Improve Exporting version information
69
3234.4.1 by Neil Martinsen-Burrell
added version-info --custom section
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
3272.1.1 by Ian Clatworthy
(Neil Martinsen-Burrell) Explain version-info --custom in the User Guide
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.
3234.4.1 by Neil Martinsen-Burrell
added version-info --custom section
89
90
.. _Version Info: ../user-reference/bzr_man.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.
3104.2.6 by Ian Clatworthy
Improve Exporting version information
95
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
96
Check clean
97
-----------
2022.1.7 by John Arbash Meinel
Add NEWS and a simple doc for using bzr version-info
98
99
Most information about the contents of the project can be cheaply
100
determined by just reading the revision entry. However, it can be useful
101
to know if the working tree was completely up-to-date when it was
102
packaged, or if there was a local modification. By supplying either
103
``--all`` or ``--check-clean``, ``bzr`` will inspect the working tree, and
104
set the ``clean`` flag in ``version_info``, as well as set entries in
105
``file_revisions`` as ``modified`` where appropriate.
106
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
107
..
2022.1.7 by John Arbash Meinel
Add NEWS and a simple doc for using bzr version-info
108
   vim: tw=74 ft=rst spell spelllang=en_us