At http://bzr.arbash-meinel.com/branches/bzr/brisbane/hack

------------------------------------------------------------
revno: 3815
revision-id: [email protected]
parent: [email protected]
parent: [email protected]
committer: John Arbash Meinel <[email protected]>
branch nick: hack
timestamp: Tue 2008-12-23 15:18:26 -0600
message:
  Merge in the debug hacks
modified:
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
  bzrlib/trace.py                trace.py-20050309040759-c8ed824bdcd4748a
  bzrlib/xml8.py                 xml5.py-20050907032657-aac8f960815b66b1
    ------------------------------------------------------------
    revno: 3800.2.6
    revision-id: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: debug_hacks
    timestamp: Tue 2008-12-23 11:17:50 -0600
    message:
      Add a flush call to mutter()
    modified:
      bzrlib/trace.py                trace.py-20050309040759-c8ed824bdcd4748a
    ------------------------------------------------------------
    revno: 3800.2.5
    revision-id: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: debug_hacks
    timestamp: Tue 2008-12-23 11:09:18 -0600
    message:
      Bring back the xml non-copy caching.
    modified:
      bzrlib/xml8.py                 xml5.py-20050907032657-aac8f960815b66b1
    ------------------------------------------------------------
    revno: 3800.2.4
    revision-id: [email protected]
    parent: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: debug_hacks
    timestamp: Tue 2008-12-23 11:07:21 -0600
    message:
      bring in the latest brisbane-core, resolve differences
    added:
      bzrlib/_chunks_to_lines_py.py  
_chunks_to_lines_py.-20081211024848-6uc3mtuje8j14l60-1
      bzrlib/_chunks_to_lines_pyx.pyx 
_chunks_to_lines_pyx-20081211021736-op7n8vrxgrd8snfi-1
      bzrlib/fifo_cache.py           
fifo_cache.py-20081209212307-31ffjwvteyvmydnf-1
      bzrlib/tests/blackbox/test_shelve.py 
test_ls_shelf.py-20081202053526-thlo8yt0pi1cgor1-1
      bzrlib/tests/test__chunks_to_lines.py 
test__chunks_to_line-20081211024848-6uc3mtuje8j14l60-2
      bzrlib/tests/test_fifo_cache.py 
test_fifo_cache.py-20081209212307-31ffjwvteyvmydnf-2
    modified:
      .bzrignore                     bzrignore-20050311232317-81f7b71efa2db11a
      Makefile                       Makefile-20050805140406-d96e3498bb61c5bb
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/_dirstate_helpers_c.h   
_dirstate_helpers_c.-20070802205935-hqo9yzuzjix271dd-1
      bzrlib/atomicfile.py           
atomicfile.py-20050509044450-dbd24e6c564f7c66
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/chk_map.py              
chk_map.py-20081001014447-ue6kkuhofvdecvxa-1
      bzrlib/delta.py                delta.py-20050729221636-54cf14ef94783d0a
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/graph.py                
graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/help_topics/__init__.py 
help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
      bzrlib/inventory.py            
inventory.py-20050309040759-6648b84ca2005b37
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/lru_cache.py            
lru_cache.py-20070119165515-tlw203kuwh0id5gv-1
      bzrlib/merge.py                merge.py-20050513021216-953b65a438527106
      bzrlib/msgeditor.py            
msgeditor.py-20050901111708-ef6d8de98f5d8f2f
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/push.py                 push.py-20080606021927-5fe39050e8xne9un-1
      bzrlib/registry.py             
lazy_factory.py-20060809213415-2gfvqadtvdn0phtg-1
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
      bzrlib/repofmt/pack_repo.py    
pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repository.py           
rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/shelf.py                
prepare_shelf.py-20081005181341-n74qe6gu1e65ad4v-1
      bzrlib/shelf_ui.py             
shelver.py-20081005210102-33worgzwrtdw0yrm-1
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/__init__.py 
__init__.py-20051128053524-eba30d8255e08dc3
      bzrlib/tests/blackbox/test_log.py 
test_log.py-20060112090212-78f6ea560c868e24
      bzrlib/tests/blackbox/test_ls.py 
test_ls.py-20060712232047-0jraqpecwngee12y-1
      bzrlib/tests/blackbox/test_pull.py 
test_pull.py-20051201144907-64959364f629947f
      bzrlib/tests/blackbox/test_push.py 
test_push.py-20060329002750-929af230d5d22663
      bzrlib/tests/blackbox/test_revision_info.py 
test_revision_info.py-20050917162600-21dab3877aa348d7
      bzrlib/tests/blackbox/test_tags.py 
test_tags.py-20070116132048-5h4qak2cm22jlb9e-1
      bzrlib/tests/branch_implementations/__init__.py 
__init__.py-20060123013057-b12a52c3f361daf4
      bzrlib/tests/branch_implementations/test_push.py 
test_push.py-20070130153159-fhfap8uoifevg30j-1
      bzrlib/tests/per_repository/test_add_fallback_repository.py 
test_add_fallback_re-20080215040003-8w9n4ck9uqdxj18m-1
      bzrlib/tests/per_repository/test_add_inventory_by_delta.py 
test_add_inventory_d-20081013002626-rut81igtlqb4590z-1
      bzrlib/tests/per_repository/test_repository.py 
test_repository.py-20060131092128-ad07f494f5c9d26c
      bzrlib/tests/test_bzrdir.py    
test_bzrdir.py-20060131065654-deba40eef51cf220
      bzrlib/tests/test_graph.py     
test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
      bzrlib/tests/test_http.py      testhttp.py-20051018020158-b2eef6e867c514d9
      bzrlib/tests/test_knit.py      
test_knit.py-20051212171302-95d4c00dd5f11f2b
      bzrlib/tests/test_msgeditor.py 
test_msgeditor.py-20051202041359-920315ec6011ee51
      bzrlib/tests/test_osutils.py   
test_osutils.py-20051201224856-e48ee24c12182989
      bzrlib/tests/test_remote.py    
test_remote.py-20060720103555-yeeg2x51vn0rbtdp-2
      bzrlib/tests/test_repository.py 
test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_revisionspec.py 
testrevisionnamespaces.py-20050711050225-8b4af89e6b1efe84
      bzrlib/tests/test_shelf.py     
test_prepare_shelf.p-20081005181341-n74qe6gu1e65ad4v-2
      bzrlib/tests/test_smart_transport.py 
test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
      bzrlib/tests/test_source.py    
test_source.py-20051207061333-a58dea6abecc030d
      bzrlib/tests/test_versionedfile.py 
test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
      bzrlib/transform.py            
transform.py-20060105172343-dd99e54394d91687
      bzrlib/transport/__init__.py   
transport.py-20050711165921-4978aa7ce1285ad5
      bzrlib/transport/decorator.py  
decorator.py-20060402223305-e913a0f25319ab42
      bzrlib/transport/http/__init__.py 
http_transport.py-20050711212304-506c5fd1059ace96
      bzrlib/transport/http/_pycurl.py 
pycurlhttp.py-20060110060940-4e2a705911af77a6
      bzrlib/transport/http/_urllib.py 
_urlgrabber.py-20060113083826-0bbf7d992fbf090c
      bzrlib/transport/remote.py     ssh.py-20060608202016-c25gvf1ob7ypbus6-1
      bzrlib/versionedfile.py        
versionedfile.py-20060222045106-5039c71ee3b65490
      bzrlib/weave.py                knit.py-20050627021749-759c29984154256b
      bzrlib/xml4.py                 xml4.py-20050916091259-db5ab55e7e6ca324
      bzrlib/xml5.py                 xml5.py-20080328030717-t9guwinq8hom0ar3-1
      bzrlib/xml7.py                 xml7.py-20061029182747-d5tiiny21bvrd2jj-1
      bzrlib/xml8.py                 xml5.py-20050907032657-aac8f960815b66b1
      bzrlib/xml_serializer.py       xml.py-20050309040759-57d51586fdec365d
      doc/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
      doc/en/user-guide/svn_plugin.txt 
svn_plugin.txt-20080509065016-cjc90f46407vi9a0-2
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
      tools/win32/build_release.py   
build_release.py-20081105204355-2ghh5cv01v1x4rzz-1
    ------------------------------------------------------------
    revno: 3800.2.3
    revision-id: [email protected]
    parent: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: debug_hacks
    timestamp: Mon 2008-12-08 12:31:49 -0600
    message:
      Merge the XML entry cache.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/lru_cache.py            
lru_cache.py-20070119165515-tlw203kuwh0id5gv-1
      bzrlib/tests/test_lru_cache.py 
test_lru_cache.py-20070119165535-hph6rk4h9rzy4180-1
      bzrlib/xml8.py                 xml5.py-20050907032657-aac8f960815b66b1
    ------------------------------------------------------------
    revno: 3800.2.2
    revision-id: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: debug_hacks
    timestamp: Sun 2008-12-07 12:42:33 -0600
    message:
      Don't execute pack ops twice.
    modified:
      bzrlib/repofmt/pack_repo.py    
pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
    ------------------------------------------------------------
    revno: 3800.2.1
    revision-id: [email protected]
    parent: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: merge_dev
    timestamp: Sun 2008-12-07 11:43:38 -0600
    message:
      Merge in the debug_hacks.
    modified:
      bzrlib/repofmt/pack_repo.py    
pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
    ------------------------------------------------------------
    revno: 3791.1.16
    revision-id: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: chk_map
    timestamp: Tue 2008-12-02 22:32:30 -0600
    message:
      Hack in some other code, so we can determine how much compression we get.
      
      This just tracks the 'old size' of all the packs that are getting 
combined versus the
      'new size' of the newly created pack file.
    modified:
      bzrlib/repofmt/pack_repo.py    
pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
    ------------------------------------------------------------
    revno: 3791.1.15
    revision-id: [email protected]
    parent: [email protected]
    committer: John Arbash Meinel <[email protected]>
    branch nick: chk_map
    timestamp: Tue 2008-12-02 22:11:38 -0600
    message:
      Add size information to the mutter when -Dpack is used.
      
      Also fix a bug in -Dpack when the repository doesn't support chk_bytes.
    modified:
      bzrlib/repofmt/pack_repo.py    
pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py       2008-12-20 21:16:24 +0000
+++ b/bzrlib/repofmt/pack_repo.py       2008-12-23 21:18:26 +0000
@@ -420,9 +420,15 @@
                 '../packs/' + self.name + '.pack')
         self._state = 'finished'
         if 'pack' in debug.debug_flags:
+            try:
+                size = self.pack_transport.stat(self.name + '.pack').st_size
+                size /= 1024.*1024
+            except errors.TransportNotPossible:
+                size = -1
             # XXX: size might be interesting?
-            mutter('%s: create_pack: pack renamed into place: %s%s->%s%s 
t+%6.3fs',
-                time.ctime(), self.upload_transport.base, self.random_name,
+            mutter('%s: create_pack: pack renamed into place (%.3fMB): 
%s%s->%s%s'
+                   ' t+%6.3fs',
+                time.ctime(), size, self.upload_transport.base, 
self.random_name,
                 self.pack_transport, self.name,
                 time.time() - self.start_time)
 
@@ -823,10 +829,17 @@
                 rev_count = len(self.revision_ids)
             else:
                 rev_count = 'all'
-            mutter('%s: create_pack: creating pack from source packs: '
+            size = 0
+            for a_pack in self.packs:
+                try:
+                    size += a_pack.pack_transport.stat(a_pack.name + 
'.pack').st_size
+                except errors.TransportNotPossible:
+                    pass
+            size /= 1024.*1024
+            mutter('%s: create_pack: creating pack from source packs (%.3fMB): 
'
                 '%s%s %s revisions wanted %s t=0',
-                time.ctime(), self._pack_collection._upload_transport.base, 
new_pack.random_name,
-                plain_pack_list, rev_count)
+                time.ctime(), size, 
self._pack_collection._upload_transport.base,
+                new_pack.random_name, plain_pack_list, rev_count)
         self._copy_revision_texts()
         self._copy_inventory_texts()
         self._copy_text_texts()
@@ -1403,9 +1416,18 @@
             'containing %d revisions. Packing %d files into %d affecting %d'
             ' revisions', self, total_packs, total_revisions, num_old_packs,
             num_new_packs, num_revs_affected)
-        self._execute_pack_operations(pack_operations,
+        old_size, new_size = self._execute_pack_operations(pack_operations,
                                       reload_func=self._restart_autopack)
-        mutter('Auto-packing repository %s completed', self)
+        if old_size is None:
+            old_size = -1
+        else:
+            old_size /= (1024.0*1024)
+        if new_size is None:
+            new_size = -1
+        else:
+            new_size /= (1024.0*1024)
+        mutter('Auto-packing repository %s completed %.3fMB => %.3fMB',
+               self.transport.base, old_size, new_size)
         return True
 
     def _execute_pack_operations(self, pack_operations, _packer_class=Packer,
@@ -1416,6 +1438,7 @@
         :param _packer_class: The class of packer to use (default: Packer).
         :return: None.
         """
+        new_size = 0
         for revision_count, packs in pack_operations:
             # we may have no-ops from the setup logic
             if len(packs) == 0:
@@ -1423,7 +1446,7 @@
             packer = _packer_class(self, packs, '.autopack',
                                    reload_func=reload_func)
             try:
-                packer.pack()
+                new_pack = packer.pack()
             except errors.RetryWithNewPacks:
                 # An exception is propagating out of this context, make sure
                 # this packer has cleaned up. Packer() doesn't set its new_pack
@@ -1432,14 +1455,26 @@
                 if packer.new_pack is not None:
                     packer.new_pack.abort()
                 raise
+            try:
+                new_size += new_pack.pack_transport.stat(new_pack.name + 
'.pack').st_size
+            except errors.TransportNotPossible:
+                new_size = None
             for pack in packs:
                 self._remove_pack_from_memory(pack)
         # record the newly available packs and stop advertising the old
         # packs
+        if new_size is None:
+            old_size = None
+        else:
+            old_size = 0
+            for revision_count, packs in pack_operations:
+                for a_pack in packs:
+                    old_size += a_pack.pack_transport.stat(a_pack.name + 
'.pack').st_size
         self._save_pack_names(clear_obsolete_packs=True)
         # Move the old packs out of the way now they are no longer referenced.
         for revision_count, packs in pack_operations:
             self._obsolete_packs(packs)
+        return old_size, new_size
 
     def lock_names(self):
         """Acquire the mutex around the pack-names index.

=== modified file 'bzrlib/trace.py'
--- a/bzrlib/trace.py   2008-11-01 14:44:47 +0000
+++ b/bzrlib/trace.py   2008-12-23 17:17:50 +0000
@@ -129,9 +129,11 @@
 info = note
 log_error = _bzr_logger.error
 error =     _bzr_logger.error
+_last_mutter_flush_time = None
 
 
 def mutter(fmt, *args):
+    global _last_mutter_flush_time
     if _trace_file is None:
         return
     if (getattr(_trace_file, 'closed', None) is not None) and 
_trace_file.closed:
@@ -152,11 +154,16 @@
         out = fmt % tuple(real_args)
     else:
         out = fmt
-    timestamp = '%0.3f  ' % (time.time() - _bzr_log_start_time,)
+    now = time.time()
+    timestamp = '%0.3f  ' % (now - _bzr_log_start_time,)
     out = timestamp + out + '\n'
     _trace_file.write(out)
     # no need to flush here, the trace file is now linebuffered when it's
     # opened.
+    if (_last_mutter_flush_time is None
+        or (now - _last_mutter_flush_time) > 2.0):
+        _trace_file.flush()
+        _last_mutter_flush_time = now
 
 
 def mutter_callsite(stacklevel, fmt, *args):

=== modified file 'bzrlib/xml8.py'
--- a/bzrlib/xml8.py    2008-12-13 03:19:40 +0000
+++ b/bzrlib/xml8.py    2008-12-23 17:09:18 +0000
@@ -428,10 +428,10 @@
                 pass
             else:
                 # Only copying directory entries drops us 2.85s => 2.35s
-                # if cached_ie.kind == 'directory':
-                #     return cached_ie.copy()
-                # return cached_ie
-                return cached_ie.copy()
+                if cached_ie.kind == 'directory':
+                    return cached_ie.copy()
+                return cached_ie
+                # return cached_ie.copy()
 
         kind = elt.tag
         if not InventoryEntry.versionable_kind(kind):

-- 
bazaar-commits mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/bazaar-commits

Reply via email to