~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-07-30 14:24:06 UTC
  • mfrom: (4576.1.1 export-to-dir)
  • Revision ID: pqm@pqm.ubuntu.com-20090730142406-wg8gmxpcjz4c1z00
(bialix) Allow 'bzr export' to export into an existing (but empty)
        directory

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.