~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/user-guide/shelving_changes.txt

  • Committer: Martin Pool
  • Date: 2005-05-05 07:00:17 UTC
  • Revision ID: mbp@sourcefrog.net-20050505070017-6af6a766fc558dc2
todo

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Shelving Changes
2
 
================
3
 
 
4
 
Sometimes you will want to temporarily remove changes from your working
5
 
tree and restore them later, For instance to commit a small bug-fix you
6
 
found while working on something. Bazaar allows you to put changes on
7
 
a ``shelf`` to achieve this. When you want to restore the changes later
8
 
you can use ``unshelve`` to apply them to your working tree again.
9
 
 
10
 
For example, consider a working tree with one or more changes made ... ::
11
 
 
12
 
  $ bzr diff
13
 
  === modified file 'description.txt'
14
 
  --- description.txt
15
 
  +++ description.txt
16
 
  @@ -2,7 +2,7 @@
17
 
   ===============
18
 
 
19
 
   These plugins
20
 
  -by Michael Ellerman
21
 
  +written by Michael Ellerman
22
 
   provide a very
23
 
   fine-grained 'undo'
24
 
   facility
25
 
  @@ -11,6 +11,6 @@
26
 
   This allows you to
27
 
   undo some of
28
 
   your changes,
29
 
  -commit, and get
30
 
  +perform a commit, and get
31
 
   back to where you
32
 
   were before.
33
 
 
34
 
The ``shelve`` command interactively asks which changes
35
 
you want to retain in the working tree::
36
 
 
37
 
  $ bzr shelve
38
 
  --- description.txt
39
 
  +++ description.txt
40
 
  @@ -2,7 +2,7 @@
41
 
   ===============
42
 
 
43
 
   These plugins
44
 
  -by Michael Ellerman
45
 
  +written by Michael Ellerman
46
 
   provide a very
47
 
   fine-grained 'undo'
48
 
   facility
49
 
 
50
 
  Shelve? [yNfrq?]: y
51
 
  --- description.txt
52
 
  +++ description.txt
53
 
  @@ -11,6 +11,6 @@
54
 
   This allows you to
55
 
   undo some of
56
 
   your changes,
57
 
  -commit, and get
58
 
  +perform a commit, and get
59
 
   back to where you
60
 
   were before.
61
 
 
62
 
  Shelve? [yNfrq?]: n
63
 
  Shelve 2 change(s)? [yNfrq?]', 'y'
64
 
  Selected changes:
65
 
   M  description.txt
66
 
  Changes shelved with id "1".
67
 
 
68
 
If there are lots of changes in the working tree, you
69
 
can provide the ``shelve`` command with a list of files
70
 
and you will only be asked about changes in those files.
71
 
After shelving changes, it's a good idea to use ``diff``
72
 
to confirm the tree has just the changes you expect::
73
 
 
74
 
  $ bzr diff
75
 
  === modified file 'description.txt'
76
 
  --- description.txt
77
 
  +++ description.txt
78
 
  @@ -2,7 +2,7 @@
79
 
   ===============
80
 
 
81
 
   These plugins
82
 
  -by Michael Ellerman
83
 
  +written by Michael Ellerman
84
 
   provide a very
85
 
   fine-grained 'undo'
86
 
   facility
87
 
 
88
 
Great - you're ready to commit::
89
 
 
90
 
  $ bzr commit -m "improve first sentence"
91
 
 
92
 
At some later time, you can bring the shelved changes back into the
93
 
working tree using ``unshelve``::
94
 
 
95
 
  $ bzr unshelve
96
 
  Unshelving changes with id "1".
97
 
   M  description.txt
98
 
  All changes applied successfully.
99
 
 
100
 
If you want to, you can put multiple items on the shelf.
101
 
Normally each time you run ``unshelve`` the most recently
102
 
shelved changes will be reinstated. However, you can also
103
 
unshelve changes in a different order by explicitly
104
 
specifying which changes to unshelve.
105
 
 
106
 
Bazaar merges the changes in to your working tree, so they
107
 
will apply even if you have edited the files since you shelved
108
 
them, though they may conflict, in which case you will have to
109
 
resolve the conflicts in the same way you do after a conflicted
110
 
merge.