Rev 4179: fix add in view-aware trees (Ian Clatworthy) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Sat Mar 21 03:25:12 GMT 2009


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

------------------------------------------------------------
revno: 4179
revision-id: pqm at pqm.ubuntu.com-20090321032508-w7hv4lggslu16zl2
parent: pqm at pqm.ubuntu.com-20090320192036-455rjm03qqnr818d
parent: ian.clatworthy at canonical.com-20090321023610-q26st6dao1iso8px
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Sat 2009-03-21 03:25:08 +0000
message:
  fix add in view-aware trees (Ian Clatworthy)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
  bzrlib/tests/workingtree_implementations/test_smart_add.py test_smart_add.py-20070215175752-9s5mxoz8aqpd80fm-1
    ------------------------------------------------------------
    revno: 4178.1.1
    revision-id: ian.clatworthy at canonical.com-20090321023610-q26st6dao1iso8px
    parent: pqm at pqm.ubuntu.com-20090320192036-455rjm03qqnr818d
    parent: ian.clatworthy at canonical.com-20090319201223-hfwv6pnd6s7ym27s
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: ianc-integration
    timestamp: Sat 2009-03-21 12:36:10 +1000
    message:
      fix add in view-aware trees (Ian Clatworthy)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
      bzrlib/tests/workingtree_implementations/test_smart_add.py test_smart_add.py-20070215175752-9s5mxoz8aqpd80fm-1
    ------------------------------------------------------------
    revno: 4163.2.2
    revision-id: ian.clatworthy at canonical.com-20090319201223-hfwv6pnd6s7ym27s
    parent: ian.clatworthy at canonical.com-20090318200105-bd4wt98cbe89uvuf
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: bzr.add-view-bug
    timestamp: Fri 2009-03-20 06:12:23 +1000
    message:
      use multiply_tests rather than subclassing
    modified:
      bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
    ------------------------------------------------------------
    revno: 4163.2.1
    revision-id: ian.clatworthy at canonical.com-20090318200105-bd4wt98cbe89uvuf
    parent: pqm at pqm.ubuntu.com-20090318051809-7p0igxlyeg4szx72
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: bzr.add-view-bug
    timestamp: Thu 2009-03-19 06:01:05 +1000
    message:
      Fix add in trees supports views
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
      bzrlib/tests/workingtree_implementations/test_smart_add.py test_smart_add.py-20070215175752-9s5mxoz8aqpd80fm-1
=== modified file 'NEWS'
--- a/NEWS	2009-03-20 19:20:36 +0000
+++ b/NEWS	2009-03-21 02:36:10 +0000
@@ -86,6 +86,10 @@
 * Fixed incorrect "Source format does not support stacking" warning
   when pushing to a smart server.  (Andrew Bennetts, #334114)
 
+* Fixed "Specified file 'x/y/z' is outside current view: " occurring
+  on ``bzr add x/y/z`` in WorkingTree5 formats (e.g. ``development-wt5``)
+  when no view is defined.  (Ian Clatworthy, #344708)
+
 * It is no longer possible to fetch between repositories while the
   target repository is in a write group. This prevents race conditions
   that prevent the use of RPC's to perform fetch, and thus allows

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-03-20 05:08:48 +0000
+++ b/bzrlib/builtins.py	2009-03-21 02:36:10 +0000
@@ -83,9 +83,10 @@
         tree = WorkingTree.open_containing(file_list[0])[0]
         if tree.supports_views():
             view_files = tree.views.lookup_view()
-            for filename in file_list:
-                if not osutils.is_inside_any(view_files, filename):
-                    raise errors.FileOutsideView(filename, view_files)
+            if view_files:
+                for filename in file_list:
+                    if not osutils.is_inside_any(view_files, filename):
+                        raise errors.FileOutsideView(filename, view_files)
     else:
         tree = WorkingTree.open_containing(u'.')[0]
         if tree.supports_views():

=== modified file 'bzrlib/tests/blackbox/test_add.py'
--- a/bzrlib/tests/blackbox/test_add.py	2009-03-03 23:05:52 +0000
+++ b/bzrlib/tests/blackbox/test_add.py	2009-03-19 20:12:23 +0000
@@ -19,12 +19,32 @@
 
 import os
 
+from bzrlib.tests import (
+    condition_isinstance,
+    split_suite_by_condition,
+    multiply_tests,
+    )
 from bzrlib.tests.blackbox import ExternalBase
 from bzrlib.tests.test_win32utils import NeedsGlobExpansionFeature
 
 
+def load_tests(standard_tests, module, loader):
+    """Parameterize tests for view-aware vs not."""
+    to_adapt, result = split_suite_by_condition(
+        standard_tests, condition_isinstance(TestAdd))
+    scenarios = [
+        ('pre-views', {'branch_tree_format': 'pack-0.92'}),
+        ('view-aware', {'branch_tree_format': 'development-wt5'}),
+        ]
+    return multiply_tests(to_adapt, scenarios, result)
+
+
 class TestAdd(ExternalBase):
 
+    def make_branch_and_tree(self, dir):
+        return ExternalBase.make_branch_and_tree(self, dir,
+            format=self.branch_tree_format)
+
     def test_add_reports(self):
         """add command prints the names of added files."""
         tree = self.make_branch_and_tree('.')

=== modified file 'bzrlib/tests/workingtree_implementations/test_smart_add.py'
--- a/bzrlib/tests/workingtree_implementations/test_smart_add.py	2009-02-23 15:29:35 +0000
+++ b/bzrlib/tests/workingtree_implementations/test_smart_add.py	2009-03-18 20:01:05 +0000
@@ -175,6 +175,16 @@
             self.assertEqual(None, wt.path2id(path.rstrip('/')),
                     'Accidentally added path: %s' % (path,))
 
+    def test_add_file_in_unknown_dir(self):
+        # Test that parent directory addition is implicit
+        tree = self.make_branch_and_tree('.')
+        self.build_tree(['dir/', 'dir/subdir/', 'dir/subdir/foo'])
+        tree.smart_add(['dir/subdir/foo'])
+        tree.lock_read()
+        self.addCleanup(tree.unlock)
+        self.assertEqual(['', 'dir', 'dir/subdir', 'dir/subdir/foo'],
+            [path for path, ie in tree.iter_entries_by_dir()])
+
     def test_custom_ids(self):
         sio = StringIO()
         action = AddCustomIDAction(to_file=sio, should_print=True)




More information about the bazaar-commits mailing list