Rev 2797: Use None to indicate 'no specific files' in revert, iter_changes in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Wed Sep 5 06:11:42 BST 2007


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

------------------------------------------------------------
revno: 2797
revision-id: pqm at pqm.ubuntu.com-20070905051139-bogf0ne9pzsbsrs3
parent: pqm at pqm.ubuntu.com-20070905023600-6h6s51el362b171a
parent: aaron.bentley at utoronto.ca-20070905043521-zrfpj4523s67t2a4
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2007-09-05 06:11:39 +0100
message:
  Use None to indicate 'no specific files' in revert, iter_changes
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
  bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
  bzrlib/tests/branch_implementations/test_sprout.py test_sprout.py-20070521151739-b8t8p7axw1h966ws-1
  bzrlib/tests/bzrdir_implementations/test_bzrdir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
  bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
  bzrlib/tests/test_merge.py     testmerge.py-20050905070950-c1b5aa49ff911024
  bzrlib/tests/test_merge_core.py test_merge_core.py-20050824132511-eb99b23a0eec641b
  bzrlib/tests/test_revert.py    test_revert.py-20060828180832-fqb1v6ecpyvnlitj-1
  bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
  bzrlib/tests/workingtree_implementations/test_executable.py test_executable.py-20060628162557-tr7h57kl80l3ma8i-1
  bzrlib/tests/workingtree_implementations/test_inv.py test_inv.py-20070311221604-ighlq8tbn5xq0kuo-1
  bzrlib/tests/workingtree_implementations/test_workingtree.py test_workingtree.py-20060203003124-817757d3e31444fb
  bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
  bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
  bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
    ------------------------------------------------------------
    revno: 2796.1.4
    merged: aaron.bentley at utoronto.ca-20070905043521-zrfpj4523s67t2a4
    parent: aaron.bentley at utoronto.ca-20070905035123-b94n6tg3ht0kt7zp
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: bzr.ab.integration
    timestamp: Wed 2007-09-05 00:35:21 -0400
    message:
      Fix up various test cases
    ------------------------------------------------------------
    revno: 2796.1.3
    merged: aaron.bentley at utoronto.ca-20070905035123-b94n6tg3ht0kt7zp
    parent: aaron.bentley at utoronto.ca-20070905032320-hm95aw25e3amk3xf
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: bzr.ab.integration
    timestamp: Tue 2007-09-04 23:51:23 -0400
    message:
      update new test case
    ------------------------------------------------------------
    revno: 2796.1.2
    merged: aaron.bentley at utoronto.ca-20070905032320-hm95aw25e3amk3xf
    parent: aaron.bentley at utoronto.ca-20070905032026-7wrsh4ucnewqpl2d
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: bzr.ab.integration
    timestamp: Tue 2007-09-04 23:23:20 -0400
    message:
      Harmonize test_no_specific_files with test_empty_to_abc_content
    ------------------------------------------------------------
    revno: 2796.1.1
    merged: aaron.bentley at utoronto.ca-20070905032026-7wrsh4ucnewqpl2d
    parent: pqm at pqm.ubuntu.com-20070905023600-6h6s51el362b171a
    parent: abentley at panoramicfeedback.com-20070829204643-zad09dvy59jji1em
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: bzr.ab.integration
    timestamp: Tue 2007-09-04 23:20:26 -0400
    message:
      Merge empty-list changes
    ------------------------------------------------------------
    revno: 2748.3.5
    merged: abentley at panoramicfeedback.com-20070829204643-zad09dvy59jji1em
    parent: abentley at panoramicfeedback.com-20070829204213-1cz9eyq4pwfogu88
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: empty-list
    timestamp: Wed 2007-08-29 16:46:43 -0400
    message:
      Update NEWS
    ------------------------------------------------------------
    revno: 2748.3.4
    merged: abentley at panoramicfeedback.com-20070829204213-1cz9eyq4pwfogu88
    parent: abentley at panoramicfeedback.com-20070829204128-jjvbx2ik8borekc3
    parent: pqm at pqm.ubuntu.com-20070829161516-le0ppkanxngkjg69
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: empty-list
    timestamp: Wed 2007-08-29 16:42:13 -0400
    message:
      Merge bzr.dev
    ------------------------------------------------------------
    revno: 2748.3.3
    merged: abentley at panoramicfeedback.com-20070829204128-jjvbx2ik8borekc3
    parent: abentley at panoramicfeedback.com-20070829160951-jxts3918bwtbyutq
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: empty-list
    timestamp: Wed 2007-08-29 16:41:28 -0400
    message:
      Add a deprecation warning for revert([]), and handle as revert(None) for now
    ------------------------------------------------------------
    revno: 2748.3.2
    merged: abentley at panoramicfeedback.com-20070829160951-jxts3918bwtbyutq
    parent: abentley at panoramicfeedback.com-20070827214102-xwblot0bu83r46mp
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: empty-list
    timestamp: Wed 2007-08-29 12:09:51 -0400
    message:
      Fix revert, remove-tree, and various tests to use None for 'no files specified'
    ------------------------------------------------------------
    revno: 2748.3.1
    merged: abentley at panoramicfeedback.com-20070827214102-xwblot0bu83r46mp
    parent: pqm at pqm.ubuntu.com-20070825182243-a3w20rpadbfz8euc
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: empty-list
    timestamp: Mon 2007-08-27 17:41:02 -0400
    message:
      Start supporting [] for empty list
=== modified file 'NEWS'
--- a/NEWS	2007-09-05 02:36:00 +0000
+++ b/NEWS	2007-09-05 03:20:26 +0000
@@ -259,6 +259,13 @@
      standard options as the base definition of these is now more complex
      than before thanks to their use of a custom callback. (Ian Clatworthy)
       
+    * Tree._iter_changes(specific_file=[]) now iterates through no files,
+      instead of iterating through all files.  None is used to iterate through
+      all files.  (Aaron Bentley)
+
+    * WorkingTree.revert() now accepts None to revert all files.  The use of
+      [] to revert all files is deprecated.  (Aaron Bentley)
+
 
 bzr 0.90 2007-08-28
 ===================

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2007-09-04 01:20:26 +0000
+++ b/bzrlib/builtins.py	2007-09-05 03:20:26 +0000
@@ -1102,7 +1102,7 @@
         tree, file_list = tree_files(file_list)
 
         if file_list is not None:
-            file_list = [f for f in file_list if f != '']
+            file_list = [f for f in file_list]
         elif not new:
             raise errors.BzrCommandError('Specify one or more files to'
             ' remove, or use --new.')
@@ -3059,8 +3059,6 @@
         if file_list is not None:
             if len(file_list) == 0:
                 raise errors.BzrCommandError("No files specified")
-        else:
-            file_list = []
         
         tree, file_list = tree_files(file_list)
         if revision is None:

=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py	2007-09-04 03:53:07 +0000
+++ b/bzrlib/bzrdir.py	2007-09-05 03:20:26 +0000
@@ -1084,7 +1084,7 @@
         wt = self.open_workingtree(recommend_upgrade=False)
         repository = wt.branch.repository
         empty = repository.revision_tree(_mod_revision.NULL_REVISION)
-        wt.revert([], old_tree=empty)
+        wt.revert(old_tree=empty)
         self.destroy_workingtree_metadata()
 
     def destroy_workingtree_metadata(self):

=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py	2007-09-03 06:23:48 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py	2007-09-05 04:35:21 +0000
@@ -67,15 +67,15 @@
         self.run_bzr('merge ../b -r last:1..last:1 --merge-type blooof',
                     retcode=3)
         self.run_bzr('merge ../b -r last:1..last:1 --merge-type merge3')
-        a_tree.revert([], backups=False)
+        a_tree.revert(backups=False)
         self.run_bzr('merge ../b -r last:1..last:1 --merge-type weave')
-        a_tree.revert([], backups=False)
+        a_tree.revert(backups=False)
         self.run_bzr_error(['Show-base is not supported for this merge type'],
                            'merge ../b -r last:1..last:1 --merge-type weave'
                            ' --show-base')
-        a_tree.revert([], backups=False)
+        a_tree.revert(backups=False)
         self.run_bzr('merge ../b -r last:1..last:1 --reprocess')
-        a_tree.revert([], backups=False)
+        a_tree.revert(backups=False)
         self.run_bzr('merge ../b -r last:1')
         self.check_file_contents('goodbye', 'quux')
         # Merging a branch pulls its revision into the tree
@@ -83,7 +83,7 @@
         b_tip = b.last_revision()
         self.failUnless(a.branch.repository.has_revision(b_tip))
         self.assertEqual([a_tip, b_tip], a.get_parent_ids())
-        a_tree.revert([], backups=False)
+        a_tree.revert(backups=False)
         out, err = self.run_bzr('merge -r revno:1:./hello', retcode=3)
         self.assertTrue("Not a branch" in err)
         self.run_bzr('merge -r revno:%d:./..revno:%d:../b'
@@ -91,7 +91,7 @@
         self.assertEquals(a.get_parent_ids(), 
                           [a.branch.last_revision(), b.last_revision()])
         self.check_file_contents('goodbye', 'quux')
-        a_tree.revert([], backups=False)
+        a_tree.revert(backups=False)
         self.run_bzr('merge -r revno:%d:../b'%b.revno())
         self.assertEquals(a.get_parent_ids(),
                           [a.branch.last_revision(), b.last_revision()])
@@ -235,7 +235,7 @@
         self.run_bzr('merge a --uncommitted -d b')
         self.failUnlessExists('b/file_1')
         self.failUnlessExists('b/file_ii')
-        tree_b.revert([])
+        tree_b.revert()
         self.run_bzr_error(('Cannot use --uncommitted and --revision',),
                            'merge /a --uncommitted -r1 -d b')
 
@@ -270,7 +270,7 @@
         os.chdir('tree_b')
         self.run_bzr('merge ../tree_a')
         self.assertEqual('directory', file_kind('file'))
-        tree_b.revert([])
+        tree_b.revert()
         self.assertEqual('file', file_kind('file'))
         self.build_tree_contents([('file', 'content_2')])
         tree_b.commit('content change')
@@ -313,7 +313,7 @@
         self.write_directive('directive', source.branch, 'target', 'rev1')
         err = self.run_bzr('merge -d target directive')[1]
         self.assertNotContainsRe(err, 'Preview patch does not match changes')
-        target.revert([])
+        target.revert()
         self.write_directive('directive', source.branch, 'target', 'rev1',
                              mangle_patch=True)
         err = self.run_bzr('merge -d target directive')[1]
@@ -339,7 +339,7 @@
         self.run_bzr('merge -d target -r revid:rev2a branch_a')
         self.failUnlessExists('target/file1')
         self.failIfExists('target/file2')
-        target.revert([])
+        target.revert()
 
         # It should work if the revid has no integer revno
         self.run_bzr('merge -d target -r revid:rev2a branch_b')

=== modified file 'bzrlib/tests/branch_implementations/test_sprout.py'
--- a/bzrlib/tests/branch_implementations/test_sprout.py	2007-07-11 16:42:37 +0000
+++ b/bzrlib/tests/branch_implementations/test_sprout.py	2007-09-05 04:35:21 +0000
@@ -91,7 +91,7 @@
         # simulated uncommit
         wt.branch.set_last_revision_info(0, _mod_revision.NULL_REVISION)
         wt.set_last_revision(_mod_revision.NULL_REVISION)
-        wt.revert([])
+        wt.revert()
         wt.commit('rev1b', rev_id='rev1b')
         wt2 = wt.bzrdir.sprout('target',
             revision_id='rev1a').open_workingtree()

=== modified file 'bzrlib/tests/bzrdir_implementations/test_bzrdir.py'
--- a/bzrlib/tests/bzrdir_implementations/test_bzrdir.py	2007-07-15 11:24:18 +0000
+++ b/bzrlib/tests/bzrdir_implementations/test_bzrdir.py	2007-09-05 04:35:21 +0000
@@ -445,7 +445,7 @@
                                      './.bzr/repository/inventory.knit',
                                      ])
 
-        target.open_workingtree().revert([])
+        target.open_workingtree().revert()
 
     def test_revert_inventory(self):
         tree = self.make_branch_and_tree('source')
@@ -464,7 +464,7 @@
                                      './.bzr/repository/inventory.knit',
                                      ])
 
-        target.open_workingtree().revert([])
+        target.open_workingtree().revert()
         self.assertDirectoriesEqual(dir.root_transport, target.root_transport,
                                     ['./.bzr/stat-cache',
                                      './.bzr/checkout/dirstate',

=== modified file 'bzrlib/tests/intertree_implementations/test_compare.py'
--- a/bzrlib/tests/intertree_implementations/test_compare.py	2007-04-30 17:45:10 +0000
+++ b/bzrlib/tests/intertree_implementations/test_compare.py	2007-09-05 03:23:20 +0000
@@ -513,6 +513,29 @@
             self.deleted(tree1, 'empty-root-id')])
         self.assertEqual(expected_results, self.do_iter_changes(tree1, tree2))
 
+    def test_empty_specific_files(self):
+        tree1 = self.make_branch_and_tree('1')
+        tree2 = self.make_to_branch_and_tree('2')
+        tree1 = self.get_tree_no_parents_no_content(tree1)
+        tree2 = self.get_tree_no_parents_abc_content(tree2)
+        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
+        self.assertEqual([],
+            self.do_iter_changes(tree1, tree2, specific_files=[]))
+
+    def test_no_specific_files(self):
+        tree1 = self.make_branch_and_tree('1')
+        tree2 = self.make_to_branch_and_tree('2')
+        tree1 = self.get_tree_no_parents_no_content(tree1)
+        tree2 = self.get_tree_no_parents_abc_content(tree2)
+        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
+        expected_results = sorted([
+            self.added(tree2, 'root-id'),
+            self.added(tree2, 'a-id'),
+            self.added(tree2, 'b-id'),
+            self.added(tree2, 'c-id'),
+            self.deleted(tree1, 'empty-root-id')])
+        self.assertEqual(expected_results, self.do_iter_changes(tree1, tree2))
+
     def test_empty_to_abc_content_a_only(self):
         tree1 = self.make_branch_and_tree('1')
         tree2 = self.make_to_branch_and_tree('2')

=== modified file 'bzrlib/tests/test_merge.py'
--- a/bzrlib/tests/test_merge.py	2007-07-25 22:54:16 +0000
+++ b/bzrlib/tests/test_merge.py	2007-09-05 03:51:23 +0000
@@ -142,7 +142,7 @@
                     this_tree=tree_b, ignore_zero=True)
         log = self._get_log(keep_log_file=True)
         self.failUnless('All changes applied successfully.\n' not in log)
-        tree_b.revert([])
+        tree_b.revert()
         merge_inner(tree_b.branch, tree_a, tree_b.basis_tree(), 
                     this_tree=tree_b, ignore_zero=False)
         log = self._get_log(keep_log_file=True)
@@ -228,7 +228,7 @@
         tree_a.commit('changed file to directory')
         tree_b.merge_from_branch(tree_a.branch)
         self.assertEqual('directory', file_kind('tree_b/file'))
-        tree_b.revert([])
+        tree_b.revert()
         self.assertEqual('file', file_kind('tree_b/file'))
         self.build_tree_contents([('tree_b/file', 'content_2')])
         tree_b.commit('content change')

=== modified file 'bzrlib/tests/test_merge_core.py'
--- a/bzrlib/tests/test_merge_core.py	2007-07-31 03:57:42 +0000
+++ b/bzrlib/tests/test_merge_core.py	2007-08-29 16:09:51 +0000
@@ -483,7 +483,7 @@
         self.assert_(os.path.lexists('b/file.THIS'))
         self.assert_(os.path.lexists('b/file.BASE'))
         self.assert_(os.path.lexists('b/file.OTHER'))
-        wtb.revert([])
+        wtb.revert()
         self.assertEqual(1, wtb.merge_from_branch(wta.branch,
                                                   merge_type=WeaveMerger))
         self.assert_(os.path.lexists('b/file'))

=== modified file 'bzrlib/tests/test_revert.py'
--- a/bzrlib/tests/test_revert.py	2007-06-01 05:43:11 +0000
+++ b/bzrlib/tests/test_revert.py	2007-08-29 20:41:28 +0000
@@ -34,7 +34,7 @@
                           target_tree.basis_tree(), this_tree=target_tree)
         self.failUnlessExists('target/dir')
         self.failUnlessExists('target/dir/contents')
-        target_tree.revert([])
+        target_tree.revert()
         self.failIfExists('target/dir/contents')
         self.failIfExists('target/dir')
 
@@ -57,26 +57,26 @@
         # newly-added files should not be deleted
         tree.add('new_file')
         basis_tree = tree.branch.repository.revision_tree(tree.last_revision())
-        tree.revert([])
+        tree.revert()
         self.failUnlessExists('tree/new_file')
 
         # unchanged files should be deleted
         tree.add('new_file')
         tree.commit('add new_file')
-        tree.revert([], old_tree=basis_tree)
+        tree.revert(old_tree=basis_tree)
         self.failIfExists('tree/new_file')
         
         # files should be deleted if their changes came from merges
         merge_target.merge_from_branch(tree.branch)
         self.failUnlessExists('merge_target/new_file')
-        merge_target.revert([])
+        merge_target.revert()
         self.failIfExists('merge_target/new_file')
 
         # files should not be deleted if changed after a merge
         merge_target.merge_from_branch(tree.branch)
         self.failUnlessExists('merge_target/new_file')
         self.build_tree_contents([('merge_target/new_file', 'new_contents')])
-        merge_target.revert([])
+        merge_target.revert()
         self.failUnlessExists('merge_target/new_file')
 
     def tree_with_executable(self):
@@ -97,7 +97,7 @@
         tt.apply()
         tree = workingtree.WorkingTree.open('tree')
         self.assertTrue(tree.is_executable('newfile-id'))
-        transform.revert(tree, tree.basis_tree(), [], backups=True)
+        transform.revert(tree, tree.basis_tree(), None, backups=True)
         self.assertEqual('helooo!', tree.get_file('newfile-id').read())
         self.assertTrue(tree.is_executable('newfile-id'))
 
@@ -107,7 +107,7 @@
         newfile = tt.trans_id_tree_file_id('newfile-id')
         tt.set_executability(False, newfile)
         tt.apply()
-        transform.revert(tree, tree.basis_tree(), [])
+        transform.revert(tree, tree.basis_tree(), None)
         self.assertTrue(tree.is_executable('newfile-id'))
 
     def test_revert_deletes_files_from_revert(self):
@@ -118,8 +118,17 @@
         os.unlink('file')
         tree.commit('removed file')
         self.failIfExists('file')
-        tree.revert([], old_tree=tree.branch.repository.revision_tree('rev1'))
+        tree.revert(old_tree=tree.branch.repository.revision_tree('rev1'))
         self.failUnlessExists('file')
-        tree.revert([])
+        tree.revert()
         self.failIfExists('file')
         self.assertEqual({}, tree.merge_modified())
+
+    def test_empty_deprecated(self):
+        tree = self.make_branch_and_tree('.')
+        self.build_tree(['file'])
+        tree.add('file')
+        self.callDeprecated(['Using [] to revert all files is deprecated'
+            ' as of bzr 0.91.  Please use None (the default) instead.'],
+            tree.revert, [])
+        self.assertIs(None, tree.path2id('file'))

=== modified file 'bzrlib/tests/test_transform.py'
--- a/bzrlib/tests/test_transform.py	2007-08-29 05:30:05 +0000
+++ b/bzrlib/tests/test_transform.py	2007-09-05 04:35:21 +0000
@@ -1052,7 +1052,7 @@
         self.assertSubset(merge_modified, modified)
         self.assertEqual(len(merge_modified), len(modified))
         this.wt.remove('b')
-        this.wt.revert([])
+        this.wt.revert()
 
     def test_file_merge(self):
         if not has_symlinks():

=== modified file 'bzrlib/tests/workingtree_implementations/test_executable.py'
--- a/bzrlib/tests/workingtree_implementations/test_executable.py	2007-02-14 05:13:39 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_executable.py	2007-08-29 16:09:51 +0000
@@ -124,7 +124,7 @@
 
         rev_tree = self.wt.branch.repository.revision_tree('r1')
         # Now revert back to the previous commit
-        self.wt.revert([], rev_tree, backups=False)
+        self.wt.revert(old_tree=rev_tree, backups=False)
 
         self.check_exist(self.wt)
 
@@ -155,7 +155,7 @@
         # so that the second branch can pull the changes
         # and make sure that the executable bit has been copied
         rev_tree = self.wt.branch.repository.revision_tree('r1')
-        self.wt.revert([], rev_tree, backups=False)
+        self.wt.revert(old_tree=rev_tree, backups=False)
         self.wt.commit('resurrected', rev_id='r3')
 
         self.check_exist(self.wt)
@@ -172,6 +172,6 @@
         """
         self.wt.commit('adding a,b', rev_id='r1')
         rev_tree = self.wt.branch.repository.revision_tree('r1')
-        self.wt.revert([], rev_tree, backups=False)
+        self.wt.revert(old_tree=rev_tree, backups=False)
         self.check_exist(self.wt)
 

=== modified file 'bzrlib/tests/workingtree_implementations/test_inv.py'
--- a/bzrlib/tests/workingtree_implementations/test_inv.py	2007-07-17 16:04:00 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_inv.py	2007-08-29 16:09:51 +0000
@@ -39,7 +39,7 @@
         self.assertEqual(len(wt.inventory), 2)
         wt.flush() # workaround revert doing wt._write_inventory for now.
         os.unlink('b1/a')
-        wt.revert([])
+        wt.revert()
         self.assertEqual(len(wt.inventory), 1)
 
 

=== modified file 'bzrlib/tests/workingtree_implementations/test_workingtree.py'
--- a/bzrlib/tests/workingtree_implementations/test_workingtree.py	2007-07-20 20:27:07 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_workingtree.py	2007-08-29 16:09:51 +0000
@@ -523,7 +523,7 @@
         open('b1/d', 'wb').write('d test\n')
         merge_inner(this.branch, other, base, this_tree=this)
         self.assertNotEqual(open('b1/a', 'rb').read(), 'a test\n')
-        this.revert([])
+        this.revert()
         self.assertEqual(open('b1/a', 'rb').read(), 'a test\n')
         self.assertIs(os.path.exists('b1/b.~1~'), True)
         self.assertIs(os.path.exists('b1/c'), False)
@@ -677,7 +677,7 @@
     def test_revert_clear_conflicts2(self):
         tree = self.make_merge_conflicts()
         self.assertEqual(len(tree.conflicts()), 1)
-        tree.revert([])
+        tree.revert()
         self.assertEqual(len(tree.conflicts()), 0)
 
     def test_format_description(self):

=== modified file 'bzrlib/tree.py'
--- a/bzrlib/tree.py	2007-08-31 05:54:21 +0000
+++ b/bzrlib/tree.py	2007-09-05 03:20:26 +0000
@@ -679,11 +679,15 @@
         lookup_trees = [self.source]
         if extra_trees:
              lookup_trees.extend(extra_trees)
-        specific_file_ids = self.target.paths2ids(specific_files,
-            lookup_trees, require_versioned=require_versioned)
+        if specific_files == []:
+            specific_file_ids = []
+        else:
+            specific_file_ids = self.target.paths2ids(specific_files,
+                lookup_trees, require_versioned=require_versioned)
         if want_unversioned:
-            all_unversioned = sorted([(p.split('/'), p) for p in self.target.extras()
-                if not specific_files or
+            all_unversioned = sorted([(p.split('/'), p) for p in
+                                     self.target.extras()
+                if specific_files is None or
                     osutils.is_inside_any(specific_files, p)])
             all_unversioned = deque(all_unversioned)
         else:

=== modified file 'bzrlib/workingtree.py'
--- a/bzrlib/workingtree.py	2007-09-03 05:29:47 +0000
+++ b/bzrlib/workingtree.py	2007-09-05 03:20:26 +0000
@@ -1903,14 +1903,19 @@
         self.apply_inventory_delta(inv_delta)
 
     @needs_tree_write_lock
-    def revert(self, filenames, old_tree=None, backups=True, 
+    def revert(self, filenames=None, old_tree=None, backups=True,
                pb=DummyProgress(), report_changes=False):
         from bzrlib.conflicts import resolve
+        if filenames == []:
+            filenames = None
+            symbol_versioning.warn('Using [] to revert all files is deprecated'
+                ' as of bzr 0.91.  Please use None (the default) instead.',
+                DeprecationWarning, stacklevel=2)
         if old_tree is None:
             old_tree = self.basis_tree()
         conflicts = transform.revert(self, old_tree, filenames, backups, pb,
                                      report_changes)
-        if not len(filenames):
+        if filenames is None:
             self.set_parent_ids(self.get_parent_ids()[:1])
             resolve(self)
         else:

=== modified file 'bzrlib/workingtree_4.py'
--- a/bzrlib/workingtree_4.py	2007-08-30 02:02:21 +0000
+++ b/bzrlib/workingtree_4.py	2007-09-05 03:20:26 +0000
@@ -1717,7 +1717,8 @@
         # TODO: handle extra trees in the dirstate.
         # TODO: handle comparisons as an empty tree as a different special
         # case? mbp 20070226
-        if extra_trees or (self.source._revision_id == NULL_REVISION):
+        if (extra_trees or (self.source._revision_id == NULL_REVISION)
+            or specific_files == []):
             # we can't fast-path these cases (yet)
             for f in super(InterDirStateTree, self)._iter_changes(
                 include_unchanged, specific_files, pb, extra_trees,




More information about the bazaar-commits mailing list