Rev 4630: (abentley) shelve_change handles 'modify text', introduce shelve_all. in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Wed Aug 19 21:31:27 BST 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 4630 [merge]
revision-id: pqm at pqm.ubuntu.com-20090819203126-tcghmd36432ss7o8
parent: pqm at pqm.ubuntu.com-20090819180449-p5dibldf9pcp24n4
parent: aaron at aaronbentley.com-20090819134822-tlzdyyxxy6qc35i8
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2009-08-19 21:31:26 +0100
message:
  (abentley) shelve_change handles 'modify text', introduce shelve_all.
modified:
  bzrlib/shelf.py                prepare_shelf.py-20081005181341-n74qe6gu1e65ad4v-1
  bzrlib/tests/test_shelf.py     test_prepare_shelf.p-20081005181341-n74qe6gu1e65ad4v-2
=== modified file 'bzrlib/shelf.py'
--- a/bzrlib/shelf.py	2009-07-13 17:35:09 +0000
+++ b/bzrlib/shelf.py	2009-08-12 21:53:52 +0000
@@ -104,13 +104,18 @@
             self.shelve_deletion(change[1])
         elif change[0] == 'add file':
             self.shelve_creation(change[1])
-        elif change[0] == 'change kind':
+        elif change[0] in ('change kind', 'modify text'):
             self.shelve_content_change(change[1])
         elif change[0] == 'modify target':
             self.shelve_modify_target(change[1])
         else:
             raise ValueError('Unknown change kind: "%s"' % change[0])
 
+    def shelve_all(self):
+        """Shelve all changes."""
+        for change in self.iter_shelvable():
+            self.shelve_change(change)
+
     def shelve_rename(self, file_id):
         """Shelve a file rename.
 

=== modified file 'bzrlib/tests/test_shelf.py'
--- a/bzrlib/tests/test_shelf.py	2009-07-31 17:42:29 +0000
+++ b/bzrlib/tests/test_shelf.py	2009-08-18 12:49:22 +0000
@@ -113,7 +113,7 @@
         shelf_file = creator.shelf_transform._limbo_name(s_trans_id)
         self.assertFileEqual(expected_content, shelf_file)
 
-    def test_shelve_content_change(self):
+    def prepare_content_change(self):
         self.thisFailsStrictLockCheck()
         tree = self.make_branch_and_tree('.')
         tree.lock_write()
@@ -124,6 +124,10 @@
         self.build_tree_contents([('foo', 'b\na\nc\n')])
         creator = shelf.ShelfCreator(tree, tree.basis_tree())
         self.addCleanup(creator.finalize)
+        return creator
+
+    def test_shelve_content_change(self):
+        creator = self.prepare_content_change()
         self.assertEqual([('modify text', 'foo-id')],
                          list(creator.iter_shelvable()))
         creator.shelve_lines('foo-id', ['a\n', 'c\n'])
@@ -131,6 +135,19 @@
         self.assertFileEqual('a\nc\n', 'foo')
         self.assertShelvedFileEqual('b\na\n', creator, 'foo-id')
 
+    def test_shelve_change_handles_modify_text(self):
+        creator = self.prepare_content_change()
+        creator.shelve_change(('modify text', 'foo-id'))
+        creator.transform()
+        self.assertFileEqual('a\n', 'foo')
+        self.assertShelvedFileEqual('b\na\nc\n', creator, 'foo-id')
+
+    def test_shelve_all(self):
+        creator = self.prepare_content_change()
+        creator.shelve_all()
+        creator.transform()
+        self.assertFileEqual('a\n', 'foo')
+        self.assertShelvedFileEqual('b\na\nc\n', creator, 'foo-id')
 
     def prepare_shelve_creation(self):
         tree = self.make_branch_and_tree('.')




More information about the bazaar-commits mailing list