~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-07-17 09:40:51 UTC
  • mfrom: (3518.1.2 virtualvf)
  • Revision ID: pqm@pqm.ubuntu.com-20080717094051-cgyo1zagozwcd4mm
(Jelmer) Add VirtualVersionedFiles class.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2008 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Test the uncommit command."""
18
18
 
22
22
from bzrlib.bzrdir import BzrDirMetaFormat1
23
23
from bzrlib.errors import BzrError, BoundBranchOutOfDate
24
24
from bzrlib.tests import TestCaseWithTransport
25
 
from bzrlib.tests.script import ScriptRunner
26
25
 
27
26
 
28
27
class TestUncommit(TestCaseWithTransport):
33
32
        wt.add(['a', 'b', 'c'])
34
33
        wt.commit('initial commit', rev_id='a1')
35
34
 
36
 
        self.build_tree_contents([('tree/a', 'new contents of a\n')])
 
35
        open('tree/a', 'wb').write('new contents of a\n')
37
36
        wt.commit('second commit', rev_id='a2')
38
37
 
39
38
        return wt
104
103
        uncommit.uncommit(b)
105
104
        self.assertEqual(len(b.revision_history()), 2)
106
105
        self.assertEqual(len(t_a.branch.revision_history()), 2)
107
 
        # update A's tree to not have the uncommitted revision referenced.
 
106
        # update A's tree to not have the uncomitted revision referenced.
108
107
        t_a.update()
109
108
        t_a.commit('commit 3b')
110
109
        self.assertRaises(BoundBranchOutOfDate, uncommit.uncommit, b)
214
213
 
215
214
        self.assertEqual(['a2', 'b3', 'c3'], wt.get_parent_ids())
216
215
 
217
 
    def test_uncommit_shows_log_with_revision_id(self):
218
 
        wt = self.create_simple_tree()
219
 
 
220
 
        script = ScriptRunner()
221
 
        script.run_script(self, """
222
 
$ cd tree
223
 
$ bzr uncommit --force 
224
 
    2 ...
225
 
      second commit
226
 
...
227
 
The above revision(s) will be removed.
228
 
You can restore the old tip by running:
229
 
  bzr pull . -r revid:a2
230
 
""")
231
 
 
232
216
    def test_uncommit_octopus_merge(self):
233
217
        # Check that uncommit keeps the pending merges in the same order
234
218
        # though it will also filter out ones in the ancestry
239
223
 
240
224
        tree2.commit('unchanged', rev_id='b3')
241
225
        tree3.commit('unchanged', rev_id='c3')
242
 
 
 
226
        
243
227
        wt.merge_from_branch(tree2.branch)
244
 
        wt.merge_from_branch(tree3.branch, force=True)
 
228
        wt.merge_from_branch(tree3.branch)
245
229
        wt.commit('merge b3, c3', rev_id='a3')
246
230
 
247
231
        tree2.commit('unchanged', rev_id='b4')
248
232
        tree3.commit('unchanged', rev_id='c4')
249
233
 
250
234
        wt.merge_from_branch(tree3.branch)
251
 
        wt.merge_from_branch(tree2.branch, force=True)
 
235
        wt.merge_from_branch(tree2.branch)
252
236
        wt.commit('merge b4, c4', rev_id='a4')
253
237
 
254
238
        self.assertEqual(['a4'], wt.get_parent_ids())