~bzr-pqm/bzr/bzr.dev

2977.1.3 by Ian Clatworthy
1st cut at the 'Personal version control' chapter
1
Reviewing changes
2
=================
3
4
Looking before you leap
5
-----------------------
6
7
Once you have completed some work, it's a good idea to review your changes
8
prior to permanently recording it. This way, you can make sure you'll be
9
committing what you intend to.
10
11
Two bzr commands are particularly useful here: **status** and **diff**.  
12
13
bzr status
14
----------
15
16
The **status** command tells you what changes have been made to the
17
working directory since the last revision::
18
19
    % bzr status
20
    modified:
21
       foo
22
23
``bzr status`` hides "boring" files that are either unchanged or ignored.
24
The status command can optionally be given the name of some files or
25
directories to check.
26
27
bzr diff
28
--------
29
30
The **diff** command shows the full text of changes to all files as a
31
standard unified diff.  This can be piped through many programs such as
32
''patch'', ''diffstat'', ''filterdiff'' and ''colordiff''::
33
34
    % bzr diff
35
    === added file 'hello.txt'
36
    --- hello.txt   1970-01-01 00:00:00 +0000
37
    +++ hello.txt   2005-10-18 14:23:29 +0000
38
    @@ -0,0 +1,1 @@
39
    +hello world
40
41
42
With the ``-r`` option, the tree is compared to an earlier revision, or
43
the differences between two versions are shown::
44
45
    % bzr diff -r 1000..          # everything since r1000
46
    % bzr diff -r 1000..1100      # changes from 1000 to 1100
47
48
The ``--diff-options`` option causes bzr to run the external diff program,
49
passing options.  For example::
50
51
    % bzr diff --diff-options --side-by-side foo
52
53
Some projects prefer patches to show a prefix at the start of the path
54
for old and new files.  The ``--prefix`` option can be used to provide
55
such a prefix.
56
As a shortcut, ``bzr diff -p1`` produces a form that works with the 
57
command ``patch -p1``.
58