Rev 3338: merge bzr.dev in file:///v/home/vila/src/bzr/experimental/faster-selftest/

Vincent Ladeuil v.ladeuil+lp at free.fr
Wed Apr 23 14:50:39 BST 2008


At file:///v/home/vila/src/bzr/experimental/faster-selftest/

------------------------------------------------------------
revno: 3338
revision-id: v.ladeuil+lp at free.fr-20080423135033-nhnu9u2re6m1c2xw
parent: v.ladeuil+lp at free.fr-20080417145539-480w60em7x6cf5s7
parent: pqm at pqm.ubuntu.com-20080422120059-sony5sthnlewabge
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: cleanup-test-suite-loading
timestamp: Wed 2008-04-23 15:50:33 +0200
message:
  merge bzr.dev
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
  bzrlib/msgeditor.py            msgeditor.py-20050901111708-ef6d8de98f5d8f2f
  bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
  bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
  bzrlib/tests/test_log.py       testlog.py-20050728115707-1a514809d7d49309
    ------------------------------------------------------------
    revno: 3302.3.75
    revision-id: pqm at pqm.ubuntu.com-20080422120059-sony5sthnlewabge
    parent: pqm at pqm.ubuntu.com-20080421181503-z5opy8fb01ksjc5w
    parent: mbp at sourcefrog.net-20080422095815-np97h22g15tejnhq
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Tue 2008-04-22 13:00:59 +0100
    message:
      (mbp,trivial) fix incorrect indentation in _run_editor
    modified:
      bzrlib/msgeditor.py            msgeditor.py-20050901111708-ef6d8de98f5d8f2f
        ------------------------------------------------------------
        revno: 3302.58.1
        revision-id: mbp at sourcefrog.net-20080422095815-np97h22g15tejnhq
        parent: pqm at pqm.ubuntu.com-20080421181503-z5opy8fb01ksjc5w
        committer: Martin Pool <mbp at sourcefrog.net>
        branch nick: trivial
        timestamp: Tue 2008-04-22 19:58:15 +1000
        message:
          Fix incorrect indentation (#220333)
        modified:
          bzrlib/msgeditor.py            msgeditor.py-20050901111708-ef6d8de98f5d8f2f
    ------------------------------------------------------------
    revno: 3302.3.74
    revision-id: pqm at pqm.ubuntu.com-20080421181503-z5opy8fb01ksjc5w
    parent: pqm at pqm.ubuntu.com-20080421032507-zw44l9w8k1riva6y
    parent: john at arbash-meinel.com-20080421160533-abpkc2ahl7h5m3nl
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Mon 2008-04-21 19:15:03 +0100
    message:
      (jam) bug #209948,
      	properly skip over ghosts when displaying the log for a single file
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/tests/test_log.py       testlog.py-20050728115707-1a514809d7d49309
        ------------------------------------------------------------
        revno: 3302.57.2
        revision-id: john at arbash-meinel.com-20080421160533-abpkc2ahl7h5m3nl
        parent: john at arbash-meinel.com-20080418175434-t91cnuokuwovt1s6
        parent: pqm at pqm.ubuntu.com-20080421032507-zw44l9w8k1riva6y
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: log_bug_209948
        timestamp: Mon 2008-04-21 11:05:33 -0500
        message:
          resolve NEWS conflict
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
          bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
        ------------------------------------------------------------
        revno: 3302.57.1
        revision-id: john at arbash-meinel.com-20080418175434-t91cnuokuwovt1s6
        parent: pqm at pqm.ubuntu.com-20080417155359-m3nxwwr442bgmsne
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: log_bug_209948
        timestamp: Fri 2008-04-18 12:54:34 -0500
        message:
          Fix bug #209948, properly skip over ghosts when displaying the changes for a single file.
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
          bzrlib/tests/test_log.py       testlog.py-20050728115707-1a514809d7d49309
    ------------------------------------------------------------
    revno: 3302.3.73
    revision-id: pqm at pqm.ubuntu.com-20080421032507-zw44l9w8k1riva6y
    parent: pqm at pqm.ubuntu.com-20080419002305-25ayhxp3m0b95e9c
    parent: mbp at sourcefrog.net-20080421010717-iji0e7xjwd1i6x2p
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Mon 2008-04-21 04:25:07 +0100
    message:
      (mbp) Set SO_REUSEADDR on server sockets (#164288)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
        ------------------------------------------------------------
        revno: 3302.56.1
        revision-id: mbp at sourcefrog.net-20080421010717-iji0e7xjwd1i6x2p
        parent: pqm at pqm.ubuntu.com-20080419002305-25ayhxp3m0b95e9c
        committer: Martin Pool <mbp at sourcefrog.net>
        branch nick: 164288-reuseaddr
        timestamp: Mon 2008-04-21 11:07:17 +1000
        message:
          Set SO_REUSEADDR on server sockets (#164288)
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
    ------------------------------------------------------------
    revno: 3302.3.72
    revision-id: pqm at pqm.ubuntu.com-20080419002305-25ayhxp3m0b95e9c
    parent: pqm at pqm.ubuntu.com-20080417155359-m3nxwwr442bgmsne
    parent: john at arbash-meinel.com-20080418220716-6nznomxj9gem1imi
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Sat 2008-04-19 01:23:05 +0100
    message:
      (jam) Trivial update to warning message when a user has not run
      	lp-login
    modified:
      bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
        ------------------------------------------------------------
        revno: 3302.55.1
        revision-id: john at arbash-meinel.com-20080418220716-6nznomxj9gem1imi
        parent: pqm at pqm.ubuntu.com-20080417155359-m3nxwwr442bgmsne
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: jam-integration
        timestamp: Fri 2008-04-18 17:07:16 -0500
        message:
          Trivial warning message update when user has not run lp-login
        modified:
          bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
    ------------------------------------------------------------
    revno: 3302.3.71
    revision-id: pqm at pqm.ubuntu.com-20080417155359-m3nxwwr442bgmsne
    parent: pqm at pqm.ubuntu.com-20080417100712-7pdn4q0fg9eoy3a2
    parent: john at arbash-meinel.com-20080416145933-9gckdbje0wbjpd6p
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: +trunk
    timestamp: Thu 2008-04-17 16:53:59 +0100
    message:
      (jam) Fix a performance regression in knit=>knit fetching.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
    ------------------------------------------------------------
    revno: 3302.54.2
    revision-id: john at arbash-meinel.com-20080416145933-9gckdbje0wbjpd6p
    parent: john at arbash-meinel.com-20080416145419-n2o7pkchnet77smi
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: knit_fetch_regression
    timestamp: Wed 2008-04-16 09:59:33 -0500
    message:
      Update NEWS to reflect the regression fix.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3302.54.1
    revision-id: john at arbash-meinel.com-20080416145419-n2o7pkchnet77smi
    parent: pqm at pqm.ubuntu.com-20080416060444-1mgq4chv82tgm2sc
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: knit_fetch_regression
    timestamp: Wed 2008-04-16 09:54:19 -0500
    message:
      Knit => knit fetching also has some very bad 'for x in revision_ids: has_revision_id()' calls
    modified:
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-04-17 14:55:39 +0000
+++ b/NEWS	2008-04-23 13:50:33 +0000
@@ -26,9 +26,19 @@
     * Avoid muttering every time a child update does not cause a progress bar
       update. (John Arbash Meinel, #213771)
 
+    * Set SO_REUSEADDR on server sockets of ``bzr serve`` to avoid problems
+      rebinding the socket when starting the server a second time.
+      (John Arbash Meinel, Martin Pool, #164288)
+
     * Severe performance degradation in fetching from knit repositories to
-      packs due to parsing the entire revisions.kndx on every graph walk
-      iteration fixed by using the Repository.get_graph API. (Robert Collins)
+      knits and packs due to parsing the entire revisions.kndx on every graph
+      walk iteration fixed by using the Repository.get_graph API.  There was
+      another regression in knit => knit fetching which re-read the index for
+      every revision each side had in common.
+      (Robert Collins, John Arbash Meinel)
+
+    * When logging the changes to a particular file, there was a bug if there
+      were ghosts in the revision ancestry. (John Arbash Meinel, #209948)
 
   DOCUMENTATION:
 

=== modified file 'bzrlib/log.py'
--- a/bzrlib/log.py	2008-03-28 03:54:40 +0000
+++ b/bzrlib/log.py	2008-04-18 17:54:34 +0000
@@ -479,6 +479,11 @@
             if rev in weave_modifed_revisions:
                 rev_ancestry.add(rev)
             for parent in parents:
+                if parent not in ancestry:
+                    # parent is a Ghost, which won't be present in
+                    # sorted_rev_list, but we may access it later, so create an
+                    # empty node for it
+                    ancestry[parent] = set()
                 rev_ancestry = rev_ancestry.union(ancestry[parent])
         ancestry[rev] = rev_ancestry
 

=== modified file 'bzrlib/msgeditor.py'
--- a/bzrlib/msgeditor.py	2007-11-17 17:22:08 +0000
+++ b/bzrlib/msgeditor.py	2008-04-22 09:58:15 +0000
@@ -61,10 +61,10 @@
             ## mutter("trying editor: %r", (edargs +[filename]))
             x = call(edargs + [filename])
         except OSError, e:
-           # We're searching for an editor, so catch safe errors and continue
-           if e.errno in (errno.ENOENT, ):
-               continue
-           raise
+            # We're searching for an editor, so catch safe errors and continue
+            if e.errno in (errno.ENOENT, ):
+                continue
+            raise
         if x == 0:
             return True
         elif x == 127:

=== modified file 'bzrlib/plugins/launchpad/lp_directory.py'
--- a/bzrlib/plugins/launchpad/lp_directory.py	2008-04-02 03:11:19 +0000
+++ b/bzrlib/plugins/launchpad/lp_directory.py	2008-04-18 22:07:16 +0000
@@ -93,10 +93,9 @@
                 if _lp_login is None:
                     if not _warned_login:
                         trace.warning('You have not informed bzr of your '
-                                'launchpad login. If you are attempting a '
-                                'write operation it may fail. If it does, '
-                                'run "bzr launchpad-login YOUR_ID" to '
-                                'set your login and try again.')
+                                'launchpad login. If you are attempting a\n'
+                                'write operation and it fails, run '
+                                '"bzr launchpad-login YOUR_ID" and try again.')
                         _warned_login = True
                     continue
                 url = urlunsplit((scheme, '%s@%s' % (_lp_login, netloc),

=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2008-04-14 22:39:51 +0000
+++ b/bzrlib/repository.py	2008-04-16 14:54:19 +0000
@@ -592,10 +592,10 @@
         Returns a set of the present revisions.
         """
         result = []
-        for id in revision_ids:
-            if self.has_revision(id):
-               result.append(id)
-        return result
+        graph = self.get_graph()
+        parent_map = graph.get_parent_map(revision_ids)
+        # The old API returned a list, should this actually be a set?
+        return parent_map.keys()
 
     @staticmethod
     def create(a_bzrdir):

=== modified file 'bzrlib/smart/server.py'
--- a/bzrlib/smart/server.py	2007-12-13 22:22:58 +0000
+++ b/bzrlib/smart/server.py	2008-04-21 01:07:17 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2006, 2007 Canonical Ltd
+# Copyright (C) 2006, 2007, 2008 Canonical Ltd
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
 
 import errno
 import socket
+import sys
 import threading
 
 from bzrlib.hooks import Hooks
@@ -59,6 +60,10 @@
         self._socket_error = socket_error
         self._socket_timeout = socket_timeout
         self._server_socket = socket.socket()
+        # SO_REUSERADDR has a different meaning on Windows
+        if sys.platform != 'win32':
+            self._server_socket.setsockopt(socket.SOL_SOCKET,
+                socket.SO_REUSEADDR, 1)
         self._server_socket.bind((host, port))
         self._sockname = self._server_socket.getsockname()
         self.port = self._sockname[1]

=== modified file 'bzrlib/tests/test_log.py'
--- a/bzrlib/tests/test_log.py	2008-03-26 21:42:35 +0000
+++ b/bzrlib/tests/test_log.py	2008-04-18 17:54:34 +0000
@@ -891,6 +891,20 @@
         # f3 should be marked as modified by revisions A, B, C, and D
         self.assertAllRevisionsForFileID(tree, 'f2-id', ['D', 'C', 'A'])
 
+    def test_file_id_with_ghosts(self):
+        # This is testing bug #209948, where having a ghost would cause
+        # _filter_revisions_touching_file_id() to fail.
+        tree = self.create_tree_with_single_merge()
+        # We need to add a revision, so switch back to a write-locked tree
+        tree.unlock()
+        tree.lock_write()
+        first_parent = tree.last_revision()
+        tree.set_parent_ids([first_parent, 'ghost-revision-id'])
+        self.build_tree_contents([('tree/f1', 'A\nB\nXX\n')])
+        tree.commit('commit with a ghost', rev_id='XX')
+        self.assertAllRevisionsForFileID(tree, 'f1-id', ['XX', 'B', 'A'])
+        self.assertAllRevisionsForFileID(tree, 'f2-id', ['D', 'C', 'A'])
+
 
 class TestShowChangedRevisions(TestCaseWithTransport):
 



More information about the bazaar-commits mailing list