Rev 4177: Merge lifeless into make-it-work in file:///home/vila/src/bzr/experimental/parallel-selftest/

Vincent Ladeuil v.ladeuil+lp at free.fr
Sat Mar 21 18:16:50 GMT 2009


At file:///home/vila/src/bzr/experimental/parallel-selftest/

------------------------------------------------------------
revno: 4177
revision-id: v.ladeuil+lp at free.fr-20090321181648-f5xlxmcwrcrrt3wc
parent: v.ladeuil+lp at free.fr-20090321181559-w81buy1x8m8t7v7t
parent: v.ladeuil+lp at free.fr-20090321181645-zvumlz7hk9tnxqud
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: make-it-work
timestamp: Sat 2009-03-21 19:16:48 +0100
message:
  Merge lifeless into make-it-work
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
  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
  bzrlib/win32utils.py           win32console.py-20051021033308-123c6c929d04973d
  doc/en/user-guide/web_browsing.txt web_browsing.txt-20080509065016-cjc90f46407vi9a0-3
    ------------------------------------------------------------
    revno: 4169.1.5
    revision-id: v.ladeuil+lp at free.fr-20090321181645-zvumlz7hk9tnxqud
    parent: v.ladeuil+lp at free.fr-20090320152625-su1l80tcpfmn62v0
    parent: v.ladeuil+lp at free.fr-20090321181642-wr8wkjr71xak9ae8
    committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
    branch nick: lifeless
    timestamp: Sat 2009-03-21 19:16:45 +0100
    message:
      Merge fixes into lifeless
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
      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
      bzrlib/win32utils.py           win32console.py-20051021033308-123c6c929d04973d
      doc/en/user-guide/web_browsing.txt web_browsing.txt-20080509065016-cjc90f46407vi9a0-3
    ------------------------------------------------------------
    revno: 4167.3.5
    revision-id: v.ladeuil+lp at free.fr-20090321181642-wr8wkjr71xak9ae8
    parent: v.ladeuil+lp at free.fr-20090320150019-4dbvqrhlbhzvx4m1
    parent: pqm at pqm.ubuntu.com-20090321041623-7boodzsp5z8v22lu
    committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
    branch nick: fixes
    timestamp: Sat 2009-03-21 19:16:42 +0100
    message:
      Merge bzr.dev into fixes
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
      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
      bzrlib/win32utils.py           win32console.py-20051021033308-123c6c929d04973d
      doc/en/user-guide/web_browsing.txt web_browsing.txt-20080509065016-cjc90f46407vi9a0-3
    ------------------------------------------------------------
    revno: 4167.4.12
    revision-id: pqm at pqm.ubuntu.com-20090321041623-7boodzsp5z8v22lu
    parent: pqm at pqm.ubuntu.com-20090321032508-w7hv4lggslu16zl2
    parent: jelmer at samba.org-20090321020059-af1cm8p5ylhd0xe8
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Sat 2009-03-21 04:16:23 +0000
    message:
      (Jelmer) Mention Loggerhead more prominently in the user guide.
    modified:
      doc/en/user-guide/web_browsing.txt web_browsing.txt-20080509065016-cjc90f46407vi9a0-3
        ------------------------------------------------------------
        revno: 4167.11.1
        revision-id: jelmer at samba.org-20090321020059-af1cm8p5ylhd0xe8
        parent: pqm at pqm.ubuntu.com-20090320192036-455rjm03qqnr818d
        committer: Jelmer Vernooij <jelmer at samba.org>
        branch nick: userguide-loggerhead
        timestamp: Sat 2009-03-21 03:00:59 +0100
        message:
          Primarily refer to loggerhead in the web browser documentation.
        modified:
          doc/en/user-guide/web_browsing.txt web_browsing.txt-20080509065016-cjc90f46407vi9a0-3
    ------------------------------------------------------------
    revno: 4167.4.11
    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: 4167.10.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
    ------------------------------------------------------------
    revno: 4167.4.10
    revision-id: pqm at pqm.ubuntu.com-20090320192036-455rjm03qqnr818d
    parent: pqm at pqm.ubuntu.com-20090320183315-5575l3rnaqr1637y
    parent: john at arbash-meinel.com-20090320165133-glkmnloupanz532h
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Fri 2009-03-20 19:20:36 +0000
    message:
      (jam) When spilling btree indexes to disk for memory pressure,
      	don't optimally compress them.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
        ------------------------------------------------------------
        revno: 4167.9.3
        revision-id: john at arbash-meinel.com-20090320165133-glkmnloupanz532h
        parent: john at arbash-meinel.com-20090320160017-z5j80tjyma375n1k
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: 1.14-btree_spill_minimal
        timestamp: Fri 2009-03-20 11:51:33 -0500
        message:
          Add NEWS entry
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
        ------------------------------------------------------------
        revno: 4167.9.2
        revision-id: john at arbash-meinel.com-20090320160017-z5j80tjyma375n1k
        parent: john at arbash-meinel.com-20090319183129-fnm26attyu1yw2s0
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: 1.14-btree_spill_minimal
        timestamp: Fri 2009-03-20 11:00:17 -0500
        message:
          Name the temporary index as it is being generated.
        modified:
          bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
        ------------------------------------------------------------
        revno: 4167.9.1
        revision-id: john at arbash-meinel.com-20090319183129-fnm26attyu1yw2s0
        parent: pqm at pqm.ubuntu.com-20090319154145-159h7mmiivu3df6v
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: 1.14-btree_spill
        timestamp: Thu 2009-03-19 13:31:29 -0500
        message:
          Disable optimizations when spilling content to disk.
          
          This prevents us from trying *extra* hard to make small indices when
          we are overflowing. We will still generate the final index in minimal
          form, we just won't shrink the intermediate steps.
        modified:
          bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
    ------------------------------------------------------------
    revno: 4167.4.9
    revision-id: pqm at pqm.ubuntu.com-20090320183315-5575l3rnaqr1637y
    parent: pqm at pqm.ubuntu.com-20090320162502-09zcxxom3xmdqhfa
    parent: v.ladeuil+lp at free.fr-20090320171951-6w7qeckyq37doxxg
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Fri 2009-03-20 18:33:15 +0000
    message:
      (vila) Tighten breakin tests
    modified:
      bzrlib/tests/blackbox/test_breakin.py test_breakin.py-20070424043903-qyy6zm4pj3h4sbp3-1
        ------------------------------------------------------------
        revno: 4167.8.1
        revision-id: v.ladeuil+lp at free.fr-20090320171951-6w7qeckyq37doxxg
        parent: pqm at pqm.ubuntu.com-20090320162502-09zcxxom3xmdqhfa
        parent: v.ladeuil+lp at free.fr-20090320150019-4dbvqrhlbhzvx4m1
        committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
        branch nick: integration
        timestamp: Fri 2009-03-20 18:19:51 +0100
        message:
          Tighten breakin tests
        modified:
          bzrlib/tests/blackbox/test_breakin.py test_breakin.py-20070424043903-qyy6zm4pj3h4sbp3-1
    ------------------------------------------------------------
    revno: 4167.4.8
    revision-id: pqm at pqm.ubuntu.com-20090320162502-09zcxxom3xmdqhfa
    parent: pqm at pqm.ubuntu.com-20090320074349-siii554u411pxpyz
    parent: john at arbash-meinel.com-20090320150959-6zv3nfhq97qz3x4r
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Fri 2009-03-20 16:25:02 +0000
    message:
      (jam) Tweaks to trace.debug_memory() for windows.
    modified:
      bzrlib/win32utils.py           win32console.py-20051021033308-123c6c929d04973d
    ------------------------------------------------------------
    revno: 4163.1.2
    revision-id: john at arbash-meinel.com-20090320150959-6zv3nfhq97qz3x4r
    parent: john at arbash-meinel.com-20090320150620-fvmi7c9dwp4d6w1i
    parent: pqm at pqm.ubuntu.com-20090320074349-siii554u411pxpyz
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: jam-integration
    timestamp: Fri 2009-03-20 10:09:59 -0500
    message:
      Merge bzr.dev, which changed kB => KB.
      
      Though honestly, kB was chosen because it matched the output of /proc/PID/status.
    added:
      bzrlib/filters/                filters-20080416080515-mkxl29amuwrf6uir-1
      bzrlib/filters/__init__.py     __init__.py-20080416080515-mkxl29amuwrf6uir-2
      bzrlib/help_topics/en/content-filters.txt contentfilters.txt-20080516145112-7x1meuoci5w41isv-1
      bzrlib/tests/ftp_server/       ftp_server-20090227112800-4r9jkezw2hw9tij7-1
      bzrlib/tests/ftp_server/__init__.py __init__.py-20090227130107-4gcpgvr00l7v3fsw-1
      bzrlib/tests/ftp_server/pyftpdlib_based.py pyftpdlib_based.py-20090227151014-882k9q34m1gwnhvi-1
      bzrlib/tests/test_filters.py   test_filters.py-20080417120614-tc3zok0vvvprsc99-1
      bzrlib/tests/workingtree_implementations/test_content_filters.py test_content_filters-20080424071441-8navsrmrfdxpn90a-1
    renamed:
      bzrlib/tests/ftp_server.py => bzrlib/tests/ftp_server/medusa_based.py ftpserver.py-20071019102346-61jbvdkrr70igauv-1
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/export/__init__.py      __init__.py-20051114235828-1ba62cb4062304e6
      bzrlib/export/dir_exporter.py  dir_exporter.py-20051114235828-b51397f56bc7b117
      bzrlib/export/tar_exporter.py  tar_exporter.py-20051114235828-1f6349a2f090a5d0
      bzrlib/export/zip_exporter.py  zip_exporter.py-20051114235828-8f57f954fba6497e
      bzrlib/hashcache.py            hashcache.py-20050706091756-fe3a8cc1143ff24f
      bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
      bzrlib/help_topics/en/debug-flags.txt debugflags.txt-20090312050229-rdspqbqq4fzbjtpe-1
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/test_cat.py test_cat.py-20051201162916-f0937e4e19ea24b3
      bzrlib/tests/blackbox/test_push.py test_push.py-20060329002750-929af230d5d22663
      bzrlib/tests/blackbox/test_selftest.py test_selftest.py-20060123024542-01c5f1bbcb596d78
      bzrlib/tests/test_ftp_transport.py test_aftp_transport.-20060823221619-98mwjzxtwtkt527k-1
      bzrlib/tests/test_hashcache.py testhashcache.py-20050706091800-0288ab2659338981
      bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
      bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
      bzrlib/tests/workingtree_implementations/__init__.py __init__.py-20060203003124-b2aa5aca21a8bfad
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/transport/__init__.py   transport.py-20050711165921-4978aa7ce1285ad5
      bzrlib/transport/ftp/__init__.py ftp.py-20051116161804-58dc9506548c2a53
      bzrlib/transport/ftp/_gssapi.py _gssapi.py-20080611190840-7ejrtp884bk5eu72-2
      bzrlib/transport/log.py        log.py-20080902041816-vh8x5yt5nvdzvew3-5
      bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
      bzrlib/ui/text.py              text.py-20051130153916-2e438cffc8afc478
      bzrlib/win32utils.py           win32console.py-20051021033308-123c6c929d04973d
      bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
      bzrlib/workingtree_4.py        workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
      doc/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
      doc/developers/index.txt       index.txt-20070508041241-qznziunkg0nffhiw-1
      doc/developers/overview.txt    overview.txt-20080904022501-ww2ggomrs5elxfm0-1
      doc/developers/performance-contributing.txt performancecontribut-20070621063612-ac4zhhagjzkr21qp-1
      doc/developers/releasing.txt   releasing.txt-20080502015919-fnrcav8fwy8ccibu-1
      bzrlib/tests/ftp_server/medusa_based.py ftpserver.py-20071019102346-61jbvdkrr70igauv-1
    ------------------------------------------------------------
    revno: 4163.1.1
    revision-id: john at arbash-meinel.com-20090320150620-fvmi7c9dwp4d6w1i
    parent: pqm at pqm.ubuntu.com-20090318051809-7p0igxlyeg4szx72
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: jam-integration
    timestamp: Fri 2009-03-20 10:06:20 -0500
    message:
      Some small fixes for the win32 'trace.debug_mem()' code.
    modified:
      bzrlib/win32utils.py           win32console.py-20051021033308-123c6c929d04973d
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2009-03-20 05:55:49 +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
@@ -146,6 +150,10 @@
 Internals
 *********
 
+* ``BtreeIndex._spill_mem_keys_to_disk()`` now generates disk index with
+  optmizations turned off. This only has effect when processing > 100,000
+  keys during something like ``bzr pack``. (John Arbash Meinel)
+
 * ``DirState`` can now be passed a custom ``SHA1Provider`` object
   enabling it to store the SHA1 and stat of the canonical (post
   content filtered) form. (Ian Clatworthy)

=== modified file 'bzrlib/btree_index.py'
--- a/bzrlib/btree_index.py	2009-02-18 05:40:39 +0000
+++ b/bzrlib/btree_index.py	2009-03-20 16:00:17 +0000
@@ -189,7 +189,8 @@
             iterators_to_combine.append(backing.iter_all_entries())
         backing_pos = pos + 1
         new_backing_file, size = \
-            self._write_nodes(self._iter_smallest(iterators_to_combine))
+            self._write_nodes(self._iter_smallest(iterators_to_combine),
+                              allow_optimize=False)
         dir_path, base_name = osutils.split(new_backing_file.name)
         # Note: The transport here isn't strictly needed, because we will use
         #       direct access to the new_backing._file object
@@ -262,11 +263,14 @@
             except StopIteration:
                 current_values[pos] = None
 
-    def _add_key(self, string_key, line, rows):
+    def _add_key(self, string_key, line, rows, allow_optimize=True):
         """Add a key to the current chunk.
 
         :param string_key: The key to add.
         :param line: The fully serialised key and value.
+        :param allow_optimize: If set to False, prevent setting the optimize
+            flag when writing out. This is used by the _spill_mem_keys_to_disk
+            functionality.
         """
         if rows[-1].writer is None:
             # opening a new leaf chunk;
@@ -277,8 +281,12 @@
                     length = _PAGE_SIZE
                     if internal_row.nodes == 0:
                         length -= _RESERVED_HEADER_BYTES # padded
+                    if allow_optimize:
+                        optimize_for_size = self._optimize_for_size
+                    else:
+                        optimize_for_size = False
                     internal_row.writer = chunk_writer.ChunkWriter(length, 0,
-                        optimize_for_size=self._optimize_for_size)
+                        optimize_for_size=optimize_for_size)
                     internal_row.writer.write(_INTERNAL_FLAG)
                     internal_row.writer.write(_INTERNAL_OFFSET +
                         str(rows[pos + 1].nodes) + "\n")
@@ -322,13 +330,16 @@
                 new_row.writer.write(_INTERNAL_OFFSET +
                     str(rows[1].nodes - 1) + "\n")
                 new_row.writer.write(key_line)
-            self._add_key(string_key, line, rows)
+            self._add_key(string_key, line, rows, allow_optimize=allow_optimize)
 
-    def _write_nodes(self, node_iterator):
+    def _write_nodes(self, node_iterator, allow_optimize=True):
         """Write node_iterator out as a B+Tree.
 
         :param node_iterator: An iterator of sorted nodes. Each node should
             match the output given by iter_all_entries.
+        :param allow_optimize: If set to False, prevent setting the optimize
+            flag when writing out. This is used by the _spill_mem_keys_to_disk
+            functionality.
         :return: A file handle for a temporary file containing a B+Tree for
             the nodes.
         """
@@ -353,11 +364,11 @@
             key_count += 1
             string_key, line = _btree_serializer._flatten_node(node,
                                     self.reference_lists)
-            self._add_key(string_key, line, rows)
+            self._add_key(string_key, line, rows, allow_optimize=allow_optimize)
         for row in reversed(rows):
             pad = (type(row) != _LeafBuilderRow)
             row.finish_node(pad=pad)
-        result = tempfile.NamedTemporaryFile()
+        result = tempfile.NamedTemporaryFile(prefix='bzr-index-')
         lines = [_BTSIGNATURE]
         lines.append(_OPTION_NODE_REFS + str(self.reference_lists) + '\n')
         lines.append(_OPTION_KEY_ELEMENTS + str(self._key_length) + '\n')

=== 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)

=== modified file 'bzrlib/win32utils.py'
--- a/bzrlib/win32utils.py	2009-03-20 07:01:11 +0000
+++ b/bzrlib/win32utils.py	2009-03-20 15:09:59 +0000
@@ -144,10 +144,17 @@
         trace.note('Cannot debug memory on win32 without ctypes'
                    ' or win32process')
         return
+    if short:
+        trace.note('WorkingSize %7dKB'
+                   '\tPeakWorking %7dKB\t%s',
+                   info['WorkingSetSize'] / 1024,
+                   info['PeakWorkingSetSize'] / 1024,
+                   message)
+        return
+    if message:
+        trace.note('%s', message)
     trace.note('WorkingSize       %8d KB', info['WorkingSetSize'] / 1024)
     trace.note('PeakWorking       %8d KB', info['PeakWorkingSetSize'] / 1024)
-    if short:
-        return
     trace.note('PagefileUsage     %8d KB', info.get('PagefileUsage', 0) / 1024)
     trace.note('PeakPagefileUsage %8d KB', info.get('PeakPagefileUsage', 0) / 1024)
     trace.note('PrivateUsage      %8d KB', info.get('PrivateUsage', 0) / 1024)

=== modified file 'doc/en/user-guide/web_browsing.txt'
--- a/doc/en/user-guide/web_browsing.txt	2008-05-16 21:00:25 +0000
+++ b/doc/en/user-guide/web_browsing.txt	2009-03-21 02:00:59 +0000
@@ -5,16 +5,11 @@
 --------
 
 There are a range of options available for providing a web view of a
-Bazaar repository. In increasing order of complexity, these are:
-
-* bzrweb
-* webserve
-* Loggerhead
-
-The first two tools are lightweight and easy to install.
-Loggerhead takes more effort to setup but provides more functionality.
-See http://bazaar-vcs.org/WebInterface for the latest information on
-these packages including download links.
+Bazaar repository, the main one being Loggerhead. The homepage of Loggerhead 
+can be found at https://launchpad.net/loggerhead.
+
+A list of alternative web viewers including download links can be found on 
+http://bazaar-vcs.org/WebInterface.
 
 Note: If your project is hosted or mirrored on Launchpad,
 Loggerhead code browsing is provided as part of the service.



More information about the bazaar-commits mailing list