7
Breezy has been designed to make it easy to
7
Bazaar has been designed to make it easy to
8
8
recover from mistakes as explained below.
10
10
Dropping the revision history for a project
11
11
-------------------------------------------
13
13
If you accidentally put the wrong tree under version control, simply
14
delete the ``.brz`` directory.
14
delete the ``.bzr`` directory.
16
16
Deregistering a file or directory
17
17
---------------------------------
19
19
If you accidentally register a file using ``add`` that you
20
20
don't want version controlled, you can use the ``remove``
21
command to tell Breezy to forget about it.
21
command to tell Bazaar to forget about it.
23
23
``remove`` has been designed to *Do the Safe Thing* in
24
24
that it will not delete a modified file. For example::
27
27
(oops - didn't mean that)
30
30
This will complain about the file being modified or unknown.
31
31
If you want to keep the file, use the ``--keep`` option.
32
32
Alternatively, if you want to delete the file, use the ``--force`` option.
36
36
(oops - didn't mean that)
37
brz remove --keep foo.html
37
bzr remove --keep foo.html
38
38
(foo.html left on disk, but deregistered)
40
40
On the other hand, the unchanged ``TODO`` file is deregistered and
41
41
removed from disk without complaint in this example::
44
brz commit -m "added TODO"
44
bzr commit -m "added TODO"
45
45
(hack, hack, hack - but don't change TODO)
47
47
(TODO file deleted)
49
49
Note: If you delete a file using your file manager, IDE or via an operating
57
57
decide that the changes you have made since the last ``commit`` ought
58
58
to be thrown away, the command to use is ``revert`` like this::
62
As a precaution, it is good practice to use ``brz status`` and
63
``brz diff`` first to check that everything being thrown away
62
As a precaution, it is good practice to use ``bzr status`` and
63
``bzr diff`` first to check that everything being thrown away
64
64
really ought to be.
66
66
Undoing changes to a file since the last commit
78
78
If you make a commit and really didn't mean to, use the ``uncommit`` command
79
79
to undo it like this::
83
83
Unlike ``revert``, ``uncommit`` leaves the content of your working tree
84
84
exactly as it is. That's really handy if you make a commit and accidently
85
85
provide the wrong error message. For example::
87
brz commit -m "Fix bug #11"
87
bzr commit -m "Fix bug #11"
88
88
(damn - wrong bug number)
90
brz commit -m "Fix bug #1"
90
bzr commit -m "Fix bug #1"
92
92
Another common reason for undoing a commit is because you forgot to add
93
93
one or more files. Some users like to alias ``commit`` to ``commit --strict``
94
94
so that commits fail if unknown files are found in the tree.
96
Tags for uncommitted revisions are removed from the branch unless
97
``--keep-tags`` was specified.
99
96
Note: While the ``merge`` command is not introduced until the next
100
97
chapter, it is worth noting now that ``uncommit`` restores any pending
101
merges. (Running ``brz status`` after ``uncommit`` will show these.)
98
merges. (Running ``bzr status`` after ``uncommit`` will show these.)
102
99
``merge`` can also be used to effectively undo just a selected commit
103
100
earlier in history. For more information on ``merge``, see
104
101
`Merging changes <merging_changes.html>`_ in the next chapter and the
105
Breezy User Reference.
102
Bazaar User Reference.
107
104
Undoing multiple commits
108
105
------------------------
110
107
You can use the -r option to undo several commits like this::
114
111
If your reason for doing this is that you really want to
115
112
back out several changes, then be sure to remember that ``uncommit``
126
123
``revert`` to take your working tree back to the desired state.
129
% brz commit "Fix bug #5"
126
% bzr commit "Fix bug #5"
130
127
Committed revision 20.
131
128
(release the code)
134
brz commit -m "Backout fix for bug #5"
131
bzr commit -m "Backout fix for bug #5"
136
133
This will change your entire tree back to the state as of revision 19,
137
134
which is probably only what you want if you haven't made any new commits
151
148
If you have defined a tag prematurely, use the ``--force`` option of
152
149
the ``tag`` command to redefine it. For example::
155
152
(oops, we're not yet ready for that)
156
153
(make more commits to include more fixes)
157
brz tag 2.0-beta-1 --force
154
bzr tag 2.0-beta-1 --force
162
159
If you have defined a tag and no longer want it defined, use the
163
160
``--delete`` option of the ``tag`` command to remove it. For example::
166
163
(oops, we're not releasing a 4th beta)
167
brz tag 2.0-beta-4 --delete
164
bzr tag 2.0-beta-4 --delete