Rev 421: Merge the latest history-db fixes. in http://bazaar.launchpad.net/~jameinel/loggerhead/integration

John Arbash Meinel john at arbash-meinel.com
Tue May 4 22:55:14 BST 2010


At http://bazaar.launchpad.net/~jameinel/loggerhead/integration

------------------------------------------------------------
revno: 421 [merge]
revision-id: john at arbash-meinel.com-20100504215504-8s42wbxj7hvljkde
parent: john at arbash-meinel.com-20100504154136-9jvjmfstduhtg6ns
parent: john at arbash-meinel.com-20100504215224-k103otkyh9iwjikq
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: integration
timestamp: Tue 2010-05-04 16:55:04 -0500
message:
  Merge the latest history-db fixes.
modified:
  loggerhead/controllers/revision_ui.py revision_ui.py-20061211192234-f9wby6myjko7z7f0-1
  loggerhead/history.py          history.py-20061211064342-102iqirsciyvgtcf-5
-------------- next part --------------
=== modified file 'loggerhead/controllers/revision_ui.py'
--- a/loggerhead/controllers/revision_ui.py	2009-08-04 04:08:03 +0000
+++ b/loggerhead/controllers/revision_ui.py	2010-05-04 21:52:24 +0000
@@ -95,17 +95,7 @@
 
         h.add_branch_nicks(change)
 
-        if '.' in change.revno:
-            # Walk "up" though the merge-sorted graph until we find a
-            # revision with merge depth 0: this is the revision that merged
-            # this one to mainline.
-            ri = self._history._rev_info
-            i = self._history._rev_indices[change.revid]
-            while ri[i][0][2] > 0:
-                i -= 1
-            merged_in = ri[i][0][3]
-        else:
-            merged_in = None
+        merged_in = self._history.get_merged_in(change)
 
         # Directory Breadcrumbs
         directory_breadcrumbs = (

=== modified file 'loggerhead/history.py'
--- a/loggerhead/history.py	2010-05-04 15:41:36 +0000
+++ b/loggerhead/history.py	2010-05-04 21:55:04 +0000
@@ -353,7 +353,7 @@
         # querier returns dotted revno tuples
         query_revno_map = self._querier.get_dotted_revno_range_multi(
                             unknown)
-        ghosts = set(revids)
+        ghosts = set(unknown)
         for revid, dotted_revno in query_revno_map.iteritems():
             revno_str = '.'.join(map(str, dotted_revno))
             self._revno_revid_cache.set(revid, revno_str)
@@ -767,6 +767,21 @@
         else:
             return self._file_change_cache.get_file_changes(entry)
 
+    def get_merged_in(self, entry):
+        """Get the point where this entry was merged into the mainline.
+        
+        :param entry: A Container having .revno and .revid.
+        :return: The revno string of the mainline revision.
+        """
+        if '.' not in entry.revno:
+            return None
+        rev_id_to_mainline = self._querier.get_mainline_where_merged(
+            [entry.revid])
+        revid = rev_id_to_mainline.get(entry.revid, None)
+        if revid is None:
+            return None
+        return self.get_revno(revid)
+
     def add_changes(self, entry):
         changes = self.get_file_changes(entry)
         entry.changes = changes



More information about the bazaar-commits mailing list