/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_uncommit.py

  • Committer: John Arbash Meinel
  • Date: 2006-07-11 21:09:40 UTC
  • mto: This revision was merged to the branch mainline in revision 1863.
  • Revision ID: john@arbash-meinel.com-20060711210940-248917f611b6a2e5
Fix bug 31426, have uncommit keep track of pending merges.

Show diffs side-by-side

added added

removed removed

Lines of Context:
121
121
        os.chdir('tree')
122
122
        out, err = self.run_bzr('uncommit', '-r', '-1', retcode=1)
123
123
        self.assertEqual('No revisions to uncommit.\n', out)
 
124
 
 
125
    def test_uncommit_merges(self):
 
126
        wt = self.create_simple_tree()
 
127
 
 
128
        tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
 
129
 
 
130
        tree2.commit('unchanged', rev_id='b3')
 
131
        tree2.commit('unchanged', rev_id='b4')
 
132
 
 
133
        wt.branch.fetch(tree2.branch)
 
134
        wt.set_pending_merges(['b4'])
 
135
        wt.commit('merge b4', rev_id='a3')
 
136
 
 
137
        self.assertEqual('a3', wt.last_revision())
 
138
        self.assertEqual([], wt.pending_merges())
 
139
 
 
140
        os.chdir('tree')
 
141
        out, err = self.run_bzr('uncommit', '--force')
 
142
 
 
143
        self.assertEqual('a2', wt.last_revision())
 
144
        self.assertEqual(['b4'], wt.pending_merges())
 
145
 
 
146
    def test_uncommit_multiple_merge(self):
 
147
        wt = self.create_simple_tree()
 
148
 
 
149
        tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
 
150
 
 
151
        tree2.commit('unchanged', rev_id='b3')
 
152
        wt.branch.fetch(tree2.branch)
 
153
        wt.set_pending_merges(['b3'])
 
154
        wt.commit('merge b3', rev_id='a3')
 
155
 
 
156
        tree2.commit('unchanged', rev_id='b4')
 
157
        wt.branch.fetch(tree2.branch)
 
158
        wt.set_pending_merges(['b4'])
 
159
        wt.commit('merge b4', rev_id='a4')
 
160
 
 
161
        self.assertEqual('a4', wt.last_revision())
 
162
        self.assertEqual([], wt.pending_merges())
 
163
 
 
164
        os.chdir('tree')
 
165
        out, err = self.run_bzr('uncommit', '--force', '-r', '2')
 
166
 
 
167
        self.assertEqual('a2', wt.last_revision())
 
168
        self.assertEqual(['b3', 'b4'], wt.pending_merges())
 
169
 
 
170
    def test_uncommit_octopus_merge(self):
 
171
        # Check that uncommit keeps the pending merges in the same order
 
172
        wt = self.create_simple_tree()
 
173
 
 
174
        tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
 
175
        tree3 = wt.bzrdir.sprout('tree3').open_workingtree()
 
176
 
 
177
        tree2.commit('unchanged', rev_id='b3')
 
178
        tree3.commit('unchanged', rev_id='c3')
 
179
        wt.branch.fetch(tree2.branch)
 
180
        wt.branch.fetch(tree3.branch)
 
181
        wt.set_pending_merges(['b3', 'c3'])
 
182
        wt.commit('merge b3, c3', rev_id='a3')
 
183
 
 
184
        tree2.commit('unchanged', rev_id='b4')
 
185
        tree3.commit('unchanged', rev_id='c4')
 
186
        wt.branch.fetch(tree2.branch)
 
187
        wt.branch.fetch(tree3.branch)
 
188
        wt.set_pending_merges(['c4', 'b4'])
 
189
        wt.commit('merge b4, c4', rev_id='a4')
 
190
 
 
191
        self.assertEqual('a4', wt.last_revision())
 
192
        self.assertEqual([], wt.pending_merges())
 
193
 
 
194
        os.chdir('tree')
 
195
        out, err = self.run_bzr('uncommit', '--force', '-r', '2')
 
196
 
 
197
        self.assertEqual('a2', wt.last_revision())
 
198
        self.assertEqual(['b3', 'c3', 'c4', 'b4'], wt.pending_merges())